[jboss-svn-commits] JBL Code SVN: r9275 - labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/dsl/editor.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Feb 1 20:20:17 EST 2007
Author: woolfel
Date: 2007-02-01 20:20:17 -0500 (Thu, 01 Feb 2007)
New Revision: 9275
Modified:
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/dsl/editor/DSLEditor.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/dsl/editor/DSLLabelProvider.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/dsl/editor/DSLMappingSorter.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/dsl/editor/MappingEditor.java
Log:
enhancements to the dsl editor. this adds sort, copy, object metadata and a forth column for the object name.
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/dsl/editor/DSLEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/dsl/editor/DSLEditor.java 2007-02-02 01:16:47 UTC (rev 9274)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/dsl/editor/DSLEditor.java 2007-02-02 01:20:17 UTC (rev 9275)
@@ -32,6 +32,7 @@
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Table;
@@ -56,6 +57,8 @@
private Text exprText; //for language expression
private Text mappingText; //for target rule expression
private Text descriptionText; //just a comment field
+ private Text objText; // for the object name
+ private Combo sortCombo; // for the sort field
public void doSave(IProgressMonitor monitor) {
@@ -177,6 +180,22 @@
firePropertyChange( PROP_DIRTY );
}
+ /**
+ * The method sorts th e
+ *
+ */
+ public void sortModel() {
+ if (sortCombo.getSelectionIndex() == DSLMappingSorter.EXPRESSION) {
+ tableViewer.setSorter(new DSLMappingSorter(DSLMappingSorter.EXPRESSION));
+ } else if (sortCombo.getSelectionIndex() == DSLMappingSorter.OBJECT) {
+ tableViewer.setSorter(new DSLMappingSorter(DSLMappingSorter.OBJECT));
+ } else if (sortCombo.getSelectionIndex() == DSLMappingSorter.SCOPE) {
+ tableViewer.setSorter(new DSLMappingSorter(DSLMappingSorter.SCOPE));
+ } else if (sortCombo.getSelectionIndex() == DSLMappingSorter.MAPPING) {
+ tableViewer.setSorter(new DSLMappingSorter(DSLMappingSorter.MAPPING));
+ }
+ }
+
public boolean isSaveAsAllowed() {
// TODO implement SaveAs
return false;
@@ -209,9 +228,13 @@
//setup the fields below the table
createExpressionViewField( parent );
createEditButton( parent );
- createMappingViewField( parent );
+ createMappingViewField( parent );
createDeleteButton( parent );
+ createObjectViewField(parent);
createAddButton( parent );
+ createSortField(parent);
+ createSortButton(parent);
+ createCopyButton(parent);
//listeners on the table...
createTableListeners();
@@ -238,6 +261,7 @@
NLMappingItem selected = getCurrentSelected();
exprText.setText( selected.getNaturalTemplate() );
mappingText.setText( selected.getTargetTemplate() );
+ objText.setText(selected.getObjectName());
}
});
@@ -309,6 +333,39 @@
}
+ private void createObjectViewField(Composite parent) {
+
+ Label obj = new Label(parent, SWT.NONE);
+ obj.setText( "Object:" );
+ GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_BEGINNING);
+ gridData.widthHint = 80;
+ obj.setLayoutData(gridData);
+
+ objText = new Text(parent, SWT.BORDER);
+ objText.setEditable( false );
+ gridData = new GridData (GridData.FILL_HORIZONTAL);
+
+ objText.setLayoutData(gridData);
+
+ }
+
+ private void createSortField(Composite parent) {
+ Label sort = new Label(parent, SWT.NONE);
+ sort.setText( "Sort by:" );
+ GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_BEGINNING);
+ gridData.widthHint = 80;
+ sort.setLayoutData(gridData);
+
+ sortCombo = new Combo(parent, SWT.READ_ONLY);
+ sortCombo.add("Object", DSLMappingSorter.OBJECT);
+ sortCombo.add("Language Expression", DSLMappingSorter.EXPRESSION);
+ sortCombo.add("Rule Language Meaning", DSLMappingSorter.MAPPING);
+ sortCombo.add("Scope", DSLMappingSorter.SCOPE);
+ gridData = new GridData (GridData.FILL_HORIZONTAL);
+
+ sortCombo.setLayoutData(gridData);
+ }
+
/** Refreshes the table do make sure it is up to date with the model. */
private void refreshModel() {
tableViewer.setInput( model );
@@ -370,6 +427,25 @@
});
}
+ private void createSortButton(Composite parent) {
+ // Create and configure the "Add" button
+ Button sort = new Button(parent, SWT.PUSH | SWT.CENTER);
+ sort.setText("Sort");
+
+ GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_BEGINNING);
+ gridData.widthHint = 80;
+ sort.setLayoutData(gridData);
+ sort.addSelectionListener(new SelectionAdapter() {
+ // Add a task to the ExampleTaskList and refresh the view
+ public void widgetSelected(SelectionEvent e) {
+ sortModel();
+ refreshModel();
+ makeDirty();
+ }
+
+
+ });
+ }
/**
* Return the selected item from the table grid thingy.
@@ -394,7 +470,7 @@
// Add an item, should pop up the editor
public void widgetSelected(SelectionEvent e) {
- NLMappingItem newItem = new NLMappingItem("", "", "*");
+ NLMappingItem newItem = new NLMappingItem("", "", "*", "");
MappingEditor editor = new MappingEditor(getSite().getShell());//shell);
editor.create();
@@ -416,6 +492,44 @@
}
+ private void createCopyButton(Composite parent) {
+ // Create and configure the "Add" button
+ Button copy = new Button(parent, SWT.PUSH | SWT.CENTER);
+ copy.setText("Copy");
+
+ GridData gridData = new GridData (GridData.HORIZONTAL_ALIGN_BEGINNING);
+ gridData.widthHint = 80;
+ copy.setLayoutData(gridData);
+
+ copy.addSelectionListener(new SelectionAdapter() {
+
+ // Add an item, should pop up the editor
+ public void widgetSelected(SelectionEvent e) {
+
+ NLMappingItem curr = getCurrentSelected();
+ NLMappingItem newItem = new NLMappingItem(curr
+ .getNaturalTemplate(), curr.getTargetTemplate(), curr
+ .getScope(), curr.getObjectName());
+
+ MappingEditor editor = new MappingEditor(getSite().getShell());//shell);
+ editor.create();
+ editor.getShell().setText("New language mapping");
+ editor.setTitle( "Create a new language element mapping from a copy." );
+ editor.setTitleImage( getTitleImage() );
+
+ editor.setNLMappingItem( newItem );
+
+ editor.open();
+ if (!editor.isCancelled()) {
+ model.addNLItem( newItem );
+ refreshModel();
+ makeDirty();
+ }
+
+ }
+ });
+ }
+
/**
* Create the viewer.
*/
@@ -423,7 +537,6 @@
tableViewer = new TableViewer(table);
tableViewer.setUseHashlookup(true);
//following is if we want default sorting... my thought is no...
- //tableViewer.setSorter(new DSLMappingSorter(DSLMappingSorter.EXPRESSION));
}
/**
@@ -472,6 +585,11 @@
// 4th column with task PercentComplete
column = new TableColumn(table, SWT.LEFT, 2);
+ column.setText("Object");
+ column.setWidth(80);
+
+ // 5th column with task PercentComplete
+ column = new TableColumn(table, SWT.LEFT, 3);
column.setText("Scope");
column.setWidth(80);
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/dsl/editor/DSLLabelProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/dsl/editor/DSLLabelProvider.java 2007-02-02 01:16:47 UTC (rev 9274)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/dsl/editor/DSLLabelProvider.java 2007-02-02 01:20:17 UTC (rev 9275)
@@ -32,6 +32,9 @@
result = item.getTargetTemplate();
break;
case 2 :
+ result = item.getObjectName();
+ break;
+ case 3 :
result = item.getScope();
break;
default :
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/dsl/editor/DSLMappingSorter.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/dsl/editor/DSLMappingSorter.java 2007-02-02 01:16:47 UTC (rev 9274)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/dsl/editor/DSLMappingSorter.java 2007-02-02 01:20:17 UTC (rev 9275)
@@ -10,9 +10,10 @@
*/
public class DSLMappingSorter extends ViewerSorter {
- public final static int EXPRESSION = 0;
- public final static int MAPPING = 1;
- public final static int SCOPE = 2;
+ public final static int OBJECT = 0;
+ public final static int EXPRESSION = 1;
+ public final static int MAPPING = 2;
+ public final static int SCOPE = 3;
// Criteria that the instance uses
private int criteria;
@@ -37,6 +38,8 @@
NLMappingItem item2 = (NLMappingItem) o2;
switch (criteria) {
+ case OBJECT:
+ return compareObject(item1, item2);
case EXPRESSION :
return compareExpressions(item1, item2);
case MAPPING :
@@ -65,6 +68,11 @@
return item1.getNaturalTemplate().compareTo( item2.getNaturalTemplate() );
}
+ private int compareObject(NLMappingItem item1,
+ NLMappingItem item2) {
+ return item1.getObjectName().compareTo(item2.getObjectName());
+ }
+
/**
* @return the sort criterion
*/
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/dsl/editor/MappingEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/dsl/editor/MappingEditor.java 2007-02-02 01:16:47 UTC (rev 9274)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/dsl/editor/MappingEditor.java 2007-02-02 01:20:17 UTC (rev 9275)
@@ -29,6 +29,7 @@
private Text exprText;
private Text mappingText;
+ private Text objText;
private Combo scopeCombo;
private boolean cancelled;
@@ -47,6 +48,7 @@
setScope( model.getScope() );
exprText.setText( model.getNaturalTemplate() );
mappingText.setText( model.getTargetTemplate() );
+ objText.setText( model.getObjectName() );
}
@@ -78,6 +80,7 @@
));
this.model.setTargetTemplate( this.mappingText.getText() );
this.model.setScope( this.scopeCombo.getText() );
+ this.model.setObjectName( this.objText.getText() );
super.okPressed();
}
@@ -100,6 +103,7 @@
//setup fields
createExpressionField( parent );
createMappingField( parent );
+ createObjectField( parent );
createScopeField( parent );
// create the top level composite wrapper
@@ -160,6 +164,25 @@
"the place where {name} would appear." );
}
+ private void createObjectField(Composite parent) {
+ Label objectLbl = new Label( parent,
+ SWT.NONE );
+ objectLbl.setText( "Object:" );
+ objectLbl.setFont( parent.getFont() );
+ objectLbl.setLayoutData( new GridData(GridData.HORIZONTAL_ALIGN_END) );
+
+ objText = new Text( parent,
+ SWT.BORDER );
+ GridData data = new GridData();
+ data.widthHint = 450;
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ objText.setLayoutData( data );
+
+ objText.setToolTipText( "Enter the name of the object." );
+
+ }
+
private void createScopeField(Composite parent) {
//type
More information about the jboss-svn-commits
mailing list