Author: DartPeng
Date: 2009-07-13 04:56:40 -0400 (Mon, 13 Jul 2009)
New Revision: 16543
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/AbstractEDIMappingEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDIDataContainerEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDIDataEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDIMappingNodeEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDITreeContainerEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIDataContainerGraphModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIDataGraphModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIMappingNodeContainerGraphModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIMappingNodeGraphModel.java
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDIEdiPartDirectEditManager.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDIEditPartFactory.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDIMapFormPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDISegementsEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDITreeNodeEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/editor/AbstractSmooksFormEditor.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/common/SmooksGraphicalMenuContextProvider.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/editparts/TreeContainerEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/editparts/TreeNodeConnectionEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/editparts/TreeNodeEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/editpolicy/TreeNodeGraphicalNodeEditPolicy.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/figures/LeftOrRightAnchor.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/figures/TreeContainerFigure.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/figures/TreeNodeFigure.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeNodeModel.java
Log:
JBIDE-4592
1. Create connections model
2. Make the node can drag line to link each other.
3. Record the graphical informations of graph model.
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java 2009-07-13
01:44:56 UTC (rev 16542)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -30,6 +30,7 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
+import org.eclipse.draw2d.IFigure;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EObject;
@@ -40,6 +41,7 @@
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor.PropertyValueWrapper;
+import org.eclipse.gef.EditPart;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
@@ -118,6 +120,9 @@
import org.jboss.tools.smooks.configuration.editors.javabean.JavaMethodsSelectionDialog;
import
org.jboss.tools.smooks.configuration.editors.javabean.JavaPropertiesSelectionDialog;
import org.jboss.tools.smooks.core.SmooksCoreActivator;
+import org.jboss.tools.smooks.gef.tree.editparts.TreeNodeEditPart;
+import org.jboss.tools.smooks.gef.tree.figures.TreeNodeFigure;
+import org.jboss.tools.smooks.gef.tree.model.TreeNodeModel;
import org.jboss.tools.smooks.model.freemarker.BindTo;
import org.jboss.tools.smooks.model.freemarker.Freemarker;
import org.jboss.tools.smooks.model.freemarker.Use;
@@ -2104,10 +2109,22 @@
input = GraphFactory.eINSTANCE.createInputType();
}
input.setType(type);
- ParamType param = GraphFactory.eINSTANCE.createParamType();
- param.setValue(value);
- param.setName(SmooksModelUtils.PARAM_NAME_PATH);
- input.getParam().add(param);
+ ParamType pathParam = null;
+ List<ParamType> paramList = input.getParam();
+ for (Iterator<?> iterator = paramList.iterator(); iterator.hasNext();) {
+ ParamType paramType = (ParamType) iterator.next();
+ if (SmooksModelUtils.PARAM_NAME_PATH.equals(paramType.getName())) {
+ pathParam = paramType;
+ break;
+ }
+ }
+ if (pathParam == null) {
+ pathParam = GraphFactory.eINSTANCE.createParamType();
+ pathParam.setName(SmooksModelUtils.PARAM_NAME_PATH);
+ }
+ pathParam.setValue(value);
+
+ input.getParam().add(pathParam);
List<ParamType> params = generateExtParams(type, path, properties);
input.getParam().addAll(params);
extType.getInput().add(input);
@@ -2125,6 +2142,49 @@
}
}
+ public static void expandGraphTree(List<TreeNodeModel> expandNodes,
TreeNodeEditPart rootEditPart) {
+ for (Iterator<?> iterator = expandNodes.iterator(); iterator.hasNext();) {
+ TreeNodeModel treeNodeModel = (TreeNodeModel) iterator.next();
+ TreeNodeModel parent = treeNodeModel;
+ if (parent == null)
+ continue;
+ List<TreeNodeModel> parentList = new ArrayList<TreeNodeModel>();
+ boolean canExpand = true;
+ while (parent != rootEditPart.getModel()) {
+ parent = parent.getParent();
+ if (parent == null) {
+ canExpand = false;
+ break;
+ }
+ parentList.add(parent);
+ }
+ if (!canExpand) {
+ parentList.clear();
+ parentList = null;
+ continue;
+ }
+ parentList.remove(parentList.size() - 1);
+ ((TreeNodeEditPart) rootEditPart).expandNode();
+ for (int i = parentList.size() - 1; i >= 0; i--) {
+ boolean expanded = false;
+ TreeNodeModel parentNode = parentList.get(i);
+ List<?> editParts = rootEditPart.getChildren();
+ for (Iterator<?> iterator2 = editParts.iterator(); iterator2.hasNext();) {
+ EditPart editPart = (EditPart) iterator2.next();
+ if (editPart instanceof TreeNodeEditPart && editPart.getModel() ==
parentNode) {
+ ((TreeNodeEditPart) editPart).expandNode();
+ rootEditPart = (TreeNodeEditPart) editPart;
+ expanded = true;
+ break;
+ }
+ }
+ if (!expanded) {
+ break;
+ }
+ }
+ }
+ }
+
public static List<ParamType> generateExtParams(String type, String path,
Properties properties) {
List<ParamType> lists = new ArrayList<ParamType>();
if (properties != null) {
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDIEdiPartDirectEditManager.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDIEdiPartDirectEditManager.java 2009-07-13
01:44:56 UTC (rev 16542)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDIEdiPartDirectEditManager.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -34,7 +34,7 @@
public class EDIEdiPartDirectEditManager extends DirectEditManager {
Font scaledFont;
protected VerifyListener verifyListener;
- protected Label activityLabel;
+ protected Label textLabel;
/**
* Creates a new ActivityDirectEditManager with the given attributes.
@@ -49,7 +49,7 @@
public EDIEdiPartDirectEditManager(GraphicalEditPart source, Class editorType,
CellEditorLocator locator,
Label label) {
super(source, editorType, locator);
- activityLabel = label;
+ textLabel = label;
}
/**
@@ -88,7 +88,7 @@
if(model instanceof TreeNodeModel){
model = ((TreeNodeModel)model).getData();
}
- String initialLabelText = activityLabel.getText();
+ String initialLabelText = textLabel.getText();
if(model instanceof MappingNode){
initialLabelText = ((MappingNode)model).getXmltag();
}
@@ -100,7 +100,7 @@
scaledFont = figure.getFont();
FontData data = scaledFont.getFontData()[0];
Dimension fontSize = new Dimension(0, data.getHeight());
- activityLabel.translateToAbsolute(fontSize);
+ textLabel.translateToAbsolute(fontSize);
data.setHeight(fontSize.height);
scaledFont = new Font(null, data);
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDIEditPartFactory.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDIEditPartFactory.java 2009-07-13
01:44:56 UTC (rev 16542)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDIEditPartFactory.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -12,39 +12,59 @@
import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPartFactory;
+import org.jboss.tools.smooks.configuration.editors.xml.TagObject;
+import org.jboss.tools.smooks.edimap.editparts.EDIDataContainerEditPart;
+import org.jboss.tools.smooks.edimap.editparts.EDIDataEditPart;
+import org.jboss.tools.smooks.edimap.editparts.EDIMappingNodeEditPart;
+import org.jboss.tools.smooks.edimap.models.EDIDataContainerGraphModel;
+import org.jboss.tools.smooks.edimap.models.EDIDataGraphModel;
+import org.jboss.tools.smooks.edimap.models.EDIMappingNodeGraphModel;
+import org.jboss.tools.smooks.edimap.models.EDIMappingNodeContainerGraphModel;
import org.jboss.tools.smooks.gef.common.RootModel;
import org.jboss.tools.smooks.gef.tree.editparts.RootEditPart;
import org.jboss.tools.smooks.gef.tree.editparts.TreeNodeConnectionEditPart;
import org.jboss.tools.smooks.gef.tree.model.TreeContainerModel;
import org.jboss.tools.smooks.gef.tree.model.TreeNodeConnection;
import org.jboss.tools.smooks.gef.tree.model.TreeNodeModel;
+import org.jboss.tools.smooks.model.medi.Segments;
/**
* @author Dart (dpeng(a)redhat.com)
- *
+ *
*/
-public class EDIEditPartFactory implements EditPartFactory{
+public class EDIEditPartFactory implements EditPartFactory {
- /* (non-Javadoc)
- * @see org.eclipse.gef.EditPartFactory#createEditPart(org.eclipse.gef.EditPart,
java.lang.Object)
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.gef.EditPartFactory#createEditPart(org.eclipse.gef.EditPart,
+ * java.lang.Object)
*/
public EditPart createEditPart(EditPart context, Object model) {
EditPart editPart = null;
- if(model instanceof RootModel){
+ if (model instanceof RootModel) {
editPart = new RootEditPart();
}
- if(model.getClass() == TreeNodeModel.class){
- editPart = new EDITreeNodeEditPart();
- }if(model.getClass() == TreeContainerModel.class){
+ if (model instanceof EDIMappingNodeGraphModel) {
+ editPart = new EDIMappingNodeEditPart();
+ }
+ if (model instanceof EDIDataGraphModel) {
+ editPart = new EDIDataEditPart();
+ }
+ if(model instanceof EDIMappingNodeContainerGraphModel){
editPart = new EDISegementsEditPart();
}
- if(model.getClass() == TreeNodeConnection.class){
+ if(model instanceof EDIDataContainerGraphModel){
+ editPart = new EDIDataContainerEditPart();
+ }
+ if (model.getClass() == TreeNodeConnection.class) {
editPart = new TreeNodeConnectionEditPart();
}
- if(editPart != null){
+ if (editPart != null) {
editPart.setModel(model);
}
return editPart;
}
-
+
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDIMapFormPage.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDIMapFormPage.java 2009-07-13
01:44:56 UTC (rev 16542)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDIMapFormPage.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -10,8 +10,10 @@
******************************************************************************/
package org.jboss.tools.smooks.edimap.editor;
+import java.io.File;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.EventObject;
import java.util.Iterator;
@@ -79,16 +81,19 @@
import org.jboss.tools.smooks.edimap.actions.AddFieldAction;
import org.jboss.tools.smooks.edimap.actions.AddSegmentAction;
import org.jboss.tools.smooks.edimap.actions.AddSubComponentAction;
+import org.jboss.tools.smooks.edimap.models.EDIDataContainerGraphModel;
+import org.jboss.tools.smooks.edimap.models.EDIMappingNodeContainerGraphModel;
import org.jboss.tools.smooks.editor.ISmooksModelProvider;
import org.jboss.tools.smooks.gef.common.RootModel;
+import org.jboss.tools.smooks.gef.tree.editparts.RootEditPart;
import org.jboss.tools.smooks.gef.tree.figures.IMoveableModel;
-import org.jboss.tools.smooks.gef.tree.model.TreeContainerModel;
import org.jboss.tools.smooks.gef.tree.model.TreeNodeConnection;
import org.jboss.tools.smooks.gef.tree.model.TreeNodeModel;
import org.jboss.tools.smooks.model.graphics.ext.FigureType;
import org.jboss.tools.smooks.model.graphics.ext.GraphType;
import org.jboss.tools.smooks.model.graphics.ext.ISmooksGraphChangeListener;
import org.jboss.tools.smooks.model.graphics.ext.InputType;
+import org.jboss.tools.smooks.model.graphics.ext.ParamType;
import org.jboss.tools.smooks.model.graphics.ext.SmooksGraphicsExtType;
import org.jboss.tools.smooks.model.medi.Delimiters;
import org.jboss.tools.smooks.model.medi.Description;
@@ -102,7 +107,7 @@
*
*/
public class EDIMapFormPage extends FormPage implements ISmooksModelValidateListener,
ISmooksGraphChangeListener,
- ISelectionChangedListener {
+ ISelectionChangedListener, ModifyListener {
private ISmooksModelProvider modelProvider;
@@ -213,17 +218,45 @@
DocumentRoot root = (DocumentRoot) modelProvider.getSmooksModel();
Segments segments = root.getEdimap().getSegments();
- TreeContainerModel container = new TreeContainerModel(segments, new
AdapterFactoryContentProvider(editingDomain
- .getAdapterFactory()), new
EDIGraphicalTreeLabelProvider(editingDomain.getAdapterFactory()));
+ EDIMappingNodeContainerGraphModel container = new
EDIMappingNodeContainerGraphModel(segments, new AdapterFactoryContentProvider(
+ editingDomain.getAdapterFactory()),
+ new EDIGraphicalTreeLabelProvider(editingDomain.getAdapterFactory()));
container.setHeaderVisable(true);
- graphicalRootModel.getChildren().add(container);
+ graphicalRootModel.addTreeNode(container);
+ this.ediFilePath = getEDIFilePath();
+
+ createEDIDataGraphModel();
+
+ List<TreeNodeModel> linkedSourceModel = createLinkModel();
+
SmooksGraphicsExtType exttype = this.modelProvider.getSmooksGraphicsExt();
initModelGraphicsInformation(exttype);
getGraphicalViewer().setContents(graphicalRootModel);
+
+ expandSegmentNode(linkedSourceModel);
+
}
+ private void expandSegmentNode(List<TreeNodeModel> linkedSourceModel) {
+ EditPart editPart = getGraphicalViewer().getContents();
+ EDISegementsEditPart segmentsPart = null;
+ if (editPart instanceof RootEditPart) {
+ List<?> children = ((RootEditPart) editPart).getChildren();
+ for (Iterator<?> iterator = children.iterator(); iterator.hasNext();) {
+ Object object = (Object) iterator.next();
+ if (object instanceof EDISegementsEditPart) {
+ segmentsPart = (EDISegementsEditPart) object;
+ break;
+ }
+ }
+ }
+ if (segmentsPart != null) {
+ SmooksUIUtils.expandGraphTree(linkedSourceModel, segmentsPart);
+ }
+ }
+
protected void initializeGraphicalViewer() {
initGraphicalModel();
}
@@ -321,20 +354,18 @@
modelProvider, getEditor());
}
descriptorComposite.getParent().layout();
-
+
disposeCompositeControls(delimitersComposite, null);
-
+
AttributeFieldEditPart pathEditPart =
SmooksUIUtils.createFileSelectionTextFieldEditor("EDI Mapping File",
delimitersComposite, editingDomain, toolkit, null, null,
SmooksUIUtils.VALUE_TYPE_TEXT, null, null);
final Text ediFileText = (Text) pathEditPart.getContentControl();
- ediFileText.addModifyListener(new ModifyListener() {
+ String filePath = getEDIFilePath();
+ if (filePath != null) {
+ ediFileText.setText(filePath);
+ }
+ ediFileText.addModifyListener(this);
- public void modifyText(ModifyEvent e) {
- ediFilePath = ediFileText.getText();
- setDataViewerModel();
- }
- });
-
if (delimitersCreator != null) {
IItemPropertySource itemPropertySource = (IItemPropertySource)
editingDomain.getAdapterFactory().adapt(
delimiters, IItemPropertySource.class);
@@ -345,6 +376,39 @@
initGraphicalModel();
}
+ private void removeEDIGraphModel() {
+ List<TreeNodeModel> children = this.graphicalRootModel.getChildren();
+ List<TreeNodeModel> temp = new ArrayList<TreeNodeModel>(children);
+ for (Iterator<?> iterator = temp.iterator(); iterator.hasNext();) {
+ TreeNodeModel treeNodeModel = (TreeNodeModel) iterator.next();
+ if (treeNodeModel.getData() instanceof TagObject) {
+ graphicalRootModel.removeTreeNode(treeNodeModel);
+ }
+ }
+ temp.clear();
+ temp = null;
+ }
+
+ private String getEDIFilePath() {
+ if (modelProvider != null) {
+ SmooksGraphicsExtType ext = modelProvider.getSmooksGraphicsExt();
+ List<InputType> inputList = ext.getInput();
+ for (Iterator<?> iterator = inputList.iterator(); iterator.hasNext();) {
+ InputType inputType = (InputType) iterator.next();
+ if (SmooksModelUtils.INPUT_TYPE_EDI.equals(inputType.getType())) {
+ List<ParamType> paramList = inputType.getParam();
+ for (Iterator<?> iterator2 = paramList.iterator(); iterator2.hasNext();) {
+ ParamType paramType = (ParamType) iterator2.next();
+ if (SmooksModelUtils.PARAM_NAME_PATH.equals(paramType.getName())) {
+ return paramType.getValue();
+ }
+ }
+ }
+ }
+ }
+ return null;
+ }
+
private ActionRegistry getActionRegistry() {
if (actionRegistry == null)
actionRegistry = new ActionRegistry();
@@ -493,11 +557,10 @@
GridLayout gridLayout = new GridLayout();
gridLayout.marginHeight = 13;
gridLayout.numColumns = 2;
- // gridLayout.makeColumnsEqualWidth = true;
+ gridLayout.makeColumnsEqualWidth = true;
form.getBody().setLayout(gridLayout);
- Section descriptionSection = toolkit.createSection(form.getBody(), Section.TITLE_BAR |
Section.TWISTIE
- | Section.EXPANDED | Section.DESCRIPTION);
+ Section descriptionSection = toolkit.createSection(form.getBody(), Section.TITLE_BAR |
Section.DESCRIPTION);
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
gd.verticalAlignment = GridData.BEGINNING;
descriptionSection.setLayoutData(gd);
@@ -515,8 +578,7 @@
descriptionCreator.createModelPanel(toolkit, descriptorComposite, modelProvider,
getEditor());
}
- Section delimiterSection = toolkit.createSection(form.getBody(), Section.TITLE_BAR |
Section.TWISTIE
- | Section.EXPANDED | Section.DESCRIPTION);
+ Section delimiterSection = toolkit.createSection(form.getBody(), Section.TITLE_BAR |
Section.DESCRIPTION);
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.verticalAlignment = GridData.BEGINNING;
gd.verticalSpan = 2;
@@ -534,14 +596,12 @@
AttributeFieldEditPart pathEditPart =
SmooksUIUtils.createFileSelectionTextFieldEditor("EDI Mapping File",
delimitersComposite, editingDomain, toolkit, null, null,
SmooksUIUtils.VALUE_TYPE_TEXT, null, null);
final Text ediFileText = (Text) pathEditPart.getContentControl();
- ediFileText.addModifyListener(new ModifyListener() {
+ String filePath = getEDIFilePath();
+ if (filePath != null) {
+ ediFileText.setText(filePath);
+ }
+ ediFileText.addModifyListener(this);
- public void modifyText(ModifyEvent e) {
- ediFilePath = ediFileText.getText();
- setDataViewerModel();
- }
- });
-
if (delimitersCreator != null) {
delimitersCreator.createModelPanel(toolkit, delimitersComposite, modelProvider,
getEditor());
}
@@ -606,19 +666,17 @@
sashForm.setWeights(new int[] { 10, 3 });
}
- private void setDataViewerModel() {
- if (delimiters != null && ediFilePath != null) {
- InputType inputType1 = null;
- List<InputType> list = modelProvider.getSmooksGraphicsExt().getInput();
- for (Iterator<?> iterator = list.iterator(); iterator.hasNext();) {
- InputType inputType = (InputType) iterator.next();
- if (SmooksModelUtils.INPUT_TYPE_EDI.equals(inputType.getType())) {
- inputType1 = inputType;
- break;
+ private void createEDIDataGraphModel() {
+ if (ediFilePath != null) {
+ try {
+ if (!new File(SmooksUIUtils.parseFilePath(ediFilePath)).exists()) {
+ return;
}
+ } catch (Throwable t) {
+ return;
}
- SmooksUIUtils.recordInputDataInfomation(inputType1,
modelProvider.getSmooksGraphicsExt(),
- SmooksModelUtils.INPUT_TYPE_EDI, ediFilePath, null);
+ }
+ if (delimiters != null && ediFilePath != null) {
String segment = delimiters.getSegment();
String field = delimiters.getField();
String component = delimiters.getComponent();
@@ -653,13 +711,11 @@
List<?> children = tl.getChildren();
for (Iterator<?> iterator = children.iterator(); iterator.hasNext();) {
Object object = (Object) iterator.next();
- TreeContainerModel container = new TreeContainerModel(object,
+ EDIDataContainerGraphModel container = new EDIDataContainerGraphModel(object,
new XMLStructuredDataContentProvider(), new XMLStructuredDataLabelProvider());
container.setHeaderVisable(true);
graphicalRootModel.addTreeNode(container);
}
-
- linkNode();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (IOException e) {
@@ -668,24 +724,72 @@
}
}
- private void linkNode() {
+ private void disconnectSegement(List<Segment> segmentList) {
+ for (Iterator<?> iterator = segmentList.iterator(); iterator.hasNext();) {
+ Segment segment = (Segment) iterator.next();
+ TreeNodeModel segmentGraphicalModel = findSegmentGraphicalModel(segment);
+ List<TreeNodeConnection> sourceConnections =
segmentGraphicalModel.getSourceConnections();
+ List<TreeNodeConnection> targetConnections =
segmentGraphicalModel.getTargetConnections();
+ List<TreeNodeConnection> sourceConnectionsTemp = new
ArrayList<TreeNodeConnection>(sourceConnections);
+ List<TreeNodeConnection> targetConnectionsTemp = new
ArrayList<TreeNodeConnection>(targetConnections);
+ for (Iterator<?> iterator2 = targetConnectionsTemp.iterator();
iterator2.hasNext();) {
+ TreeNodeConnection treeNodeConnection = (TreeNodeConnection) iterator2.next();
+ treeNodeConnection.disconnect();
+ }
+ targetConnectionsTemp.clear();
+ targetConnectionsTemp = null;
+
+ for (Iterator<?> iterator2 = sourceConnectionsTemp.iterator();
iterator2.hasNext();) {
+ TreeNodeConnection treeNodeConnection = (TreeNodeConnection) iterator2.next();
+ treeNodeConnection.disconnect();
+ }
+ sourceConnectionsTemp.clear();
+ sourceConnectionsTemp = null;
+
+ disconnectSegement(segment.getSegment());
+ }
+ }
+
+ private void disconnectSegements() {
if (graphicalRootModel != null && segments != null) {
List<Segment> segmentList = segments.getSegment();
- linkNode(segmentList);
+ disconnectSegement(segmentList);
}
}
- private void linkNode(List<Segment> segmentList) {
+ private List<TreeNodeModel> createLinkModel() {
+ if (graphicalRootModel != null && segments != null) {
+ List<Segment> segmentList = segments.getSegment();
+ return linkNode(segmentList);
+ }
+ return Collections.emptyList();
+ }
+
+ private List<TreeNodeModel> linkNode(List<Segment> segmentList) {
+ List<TreeNodeModel> sourceLinkedModel = new ArrayList<TreeNodeModel>();
for (Iterator<?> iterator = segmentList.iterator(); iterator.hasNext();) {
Segment segment = (Segment) iterator.next();
TreeNodeModel segmentGraphicalModel = findSegmentGraphicalModel(segment);
String code = segment.getSegcode();
TreeNodeModel model = findEDIDataGraphicalModel(code);
- new TreeNodeConnection(model, segmentGraphicalModel).connect();
- linkNode(segment.getSegment());
+ if (segmentGraphicalModel == null || model == null)
+ continue;
+ new TreeNodeConnection(segmentGraphicalModel, model).connect();
+ sourceLinkedModel.add(segmentGraphicalModel);
+ List<TreeNodeModel> linkedModel = linkNode(segment.getSegment());
+ if (linkedModel != null) {
+ sourceLinkedModel.addAll(linkedModel);
+ }
}
+ return sourceLinkedModel;
}
+ /**
+ * it's dangerous , the method is dangerous
+ *
+ * @param segment
+ * @return
+ */
private TreeNodeModel findSegmentGraphicalModel(Segment segment) {
if (graphicalRootModel != null) {
List<TreeNodeModel> treeNodeList = graphicalRootModel.getChildren();
@@ -785,4 +889,28 @@
updateSelectionActions();
}
}
+
+ public void modifyText(ModifyEvent e) {
+ Text ediFileText = (Text) e.getSource();
+ ediFilePath = ediFileText.getText();
+ InputType inputType1 = null;
+ SmooksGraphicsExtType ext = modelProvider.getSmooksGraphicsExt();
+ List<InputType> list = ext.getInput();
+ for (Iterator<?> iterator = list.iterator(); iterator.hasNext();) {
+ InputType inputType = (InputType) iterator.next();
+ if (SmooksModelUtils.INPUT_TYPE_EDI.equals(inputType.getType())) {
+ inputType1 = inputType;
+ break;
+ }
+ }
+ SmooksUIUtils.recordInputDataInfomation(inputType1,
modelProvider.getSmooksGraphicsExt(),
+ SmooksModelUtils.INPUT_TYPE_EDI, ediFilePath, null);
+
+ disconnectSegements();
+ removeEDIGraphModel();
+ createEDIDataGraphModel();
+ initModelGraphicsInformation(ext);
+ List<TreeNodeModel> sourceLinkedModel = this.createLinkModel();
+ expandSegmentNode(sourceLinkedModel);
+ }
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDISegementsEditPart.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDISegementsEditPart.java 2009-07-13
01:44:56 UTC (rev 16542)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDISegementsEditPart.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -10,66 +10,13 @@
******************************************************************************/
package org.jboss.tools.smooks.edimap.editor;
-import java.beans.PropertyChangeEvent;
+import org.jboss.tools.smooks.edimap.editparts.EDITreeContainerEditPart;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.DefaultEditDomain;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.forms.editor.FormPage;
-import org.jboss.tools.smooks.editor.ISmooksModelProvider;
-import org.jboss.tools.smooks.gef.tree.editparts.TreeContainerEditPart;
-import org.jboss.tools.smooks.gef.tree.figures.IMoveableModel;
-import org.jboss.tools.smooks.gef.tree.model.TreeNodeModel;
-import org.jboss.tools.smooks.model.graphics.ext.FigureType;
-import org.jboss.tools.smooks.model.graphics.ext.SmooksGraphicsExtType;
-import org.jboss.tools.smooks.model.medi.Segments;
/**
* @author Dart (dpeng(a)redhat.com)
*
*/
-public class EDISegementsEditPart extends TreeContainerEditPart {
+public class EDISegementsEditPart extends EDITreeContainerEditPart {
- public void propertyChange(PropertyChangeEvent evt) {
- super.propertyChange(evt);
- if (IMoveableModel.PRO_BOUNDS_CHANGED.equals(evt.getPropertyName())) {
- DefaultEditDomain domain = (DefaultEditDomain) getViewer().getEditDomain();
- IEditorPart editor = domain.getEditorPart();
- if((editor instanceof FormPage)){
- editor = ((FormPage)editor).getEditor();
- }
-
- if(editor instanceof ISmooksModelProvider && getModel() instanceof
IMoveableModel){
- SmooksGraphicsExtType graph = ((ISmooksModelProvider)editor).getSmooksGraphicsExt();
- Rectangle rect = ((IMoveableModel)getModel()).getBounds();
- recordBounds(graph,rect);
- }
- }
- }
-
-
- /* (non-Javadoc)
- * @see
org.jboss.tools.smooks.gef.tree.editparts.TreeNodeEditPart#recordFigureBounds(org.jboss.tools.smooks.model.graphics.ext.FigureType,
org.eclipse.draw2d.geometry.Rectangle)
- */
- @Override
- protected void recordFigureBounds(FigureType figureType, Rectangle bounds) {
- figureType.setX(String.valueOf(bounds.getLocation().x));
- figureType.setY(String.valueOf(bounds.getLocation().y));
- }
-
- public static String generateFigureId(Object data){
- if(data instanceof Segments){
-// String xml = ((MappingNode)data).getXmltag();
-// return "segments_" + xml;
- return "segments";
- }
- return null;
- }
-
-
- protected String generateFigureID(){
- TreeNodeModel model = (TreeNodeModel) getModel();
- Object data = model.getData();
- return generateFigureId(data);
- }
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDITreeNodeEditPart.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDITreeNodeEditPart.java 2009-07-13
01:44:56 UTC (rev 16542)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDITreeNodeEditPart.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -10,9 +10,7 @@
******************************************************************************/
package org.jboss.tools.smooks.edimap.editor;
-import org.eclipse.draw2d.Label;
import org.eclipse.emf.edit.command.DeleteCommand;
-import org.eclipse.emf.edit.command.SetCommand;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.gef.DefaultEditDomain;
import org.eclipse.gef.EditPolicy;
@@ -20,108 +18,57 @@
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
import org.eclipse.gef.editpolicies.ComponentEditPolicy;
-import org.eclipse.gef.editpolicies.DirectEditPolicy;
-import org.eclipse.gef.requests.DirectEditRequest;
import org.eclipse.gef.requests.GroupRequest;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.ui.IEditorPart;
import org.jboss.tools.smooks.edimap.actions.DeleteEDIModelCommand;
-import org.jboss.tools.smooks.edimap.actions.RenameXmlTagNameCommand;
+import org.jboss.tools.smooks.edimap.editparts.AbstractEDIMappingEditPart;
import org.jboss.tools.smooks.editor.ISmooksModelProvider;
import org.jboss.tools.smooks.gef.tree.editparts.TreeNodeEditPart;
-import org.jboss.tools.smooks.gef.tree.figures.TreeNodeFigure;
import org.jboss.tools.smooks.gef.tree.model.TreeNodeModel;
-import org.jboss.tools.smooks.model.medi.MEdiPackage;
import org.jboss.tools.smooks.model.medi.MappingNode;
/**
* @author Dart (dpeng(a)redhat.com)
*
*/
-public class EDITreeNodeEditPart extends TreeNodeEditPart {
+public class EDITreeNodeEditPart extends AbstractEDIMappingEditPart {
- private DirectEditManager manager;
-
/*
* (non-Javadoc)
*
* @see
- * org.jboss.tools.smooks.gef.tree.editparts.TreeNodeEditPart#performDirectEdit
+ * org.jboss.tools.smooks.edimap.editor.AbstractEDIMappingEditPart#canDirectEdit
* ()
*/
@Override
- protected void performDirectEdit() {
- if (manager == null) {
- Label l = ((TreeNodeFigure) getFigure()).getLabel();
- manager = new EDIEdiPartDirectEditManager(this, TextCellEditor.class, new
EDILabelCellEditorLocator(l), l);
+ protected boolean canDirectEdit() {
+ TreeNodeModel model = (TreeNodeModel) getModel();
+ if (model.getData() instanceof MappingNode) {
+ return true;
}
- manager.show();
+ return false;
}
/*
* (non-Javadoc)
*
* @see
+ * org.jboss.tools.smooks.gef.tree.editparts.TreeNodeEditPart#isDragLink()
+ */
+ protected boolean isDragLink() {
+ return true;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
* org.jboss.tools.smooks.gef.tree.editparts.TreeNodeEditPart#createEditPolicies
* ()
*/
@Override
protected void createEditPolicies() {
- installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new DirectEditPolicy() {
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.eclipse.gef.editpolicies.DirectEditPolicy#getDirectEditCommand
- * (org.eclipse.gef.requests.DirectEditRequest)
- */
- @Override
- protected Command getDirectEditCommand(DirectEditRequest request) {
- TreeNodeModel node = (TreeNodeModel) getHost().getModel();
- GraphicalViewer viewer = (GraphicalViewer) ((AbstractGraphicalEditPart)
getHost()).getViewer();
- DefaultEditDomain domain = (DefaultEditDomain) viewer.getEditDomain();
- IEditorPart part = domain.getEditorPart();
- if (part instanceof EDIMapFormPage) {
- part = ((EDIMapFormPage) part).getEditor();
- }
- if (part instanceof ISmooksModelProvider) {
- EditingDomain ed = ((ISmooksModelProvider) part).getEditingDomain();
- Object feature = null;
- Object owner = node.getData();
- if (owner instanceof MappingNode) {
- feature = MEdiPackage.Literals.MAPPING_NODE__XMLTAG;
- }
- org.eclipse.emf.common.command.Command command = SetCommand.create(ed,
node.getData(), feature,
- request.getCellEditor().getValue());
- if (command != null) {
- return new RenameXmlTagNameCommand((TreeNodeEditPart) getHost(), ed, command);
- }
- }
- return null;
- // RenameActivityCommand cmd = new RenameActivityCommand();
- // cmd.setSource((Activity)getHost().getModel());
- // cmd.setOldName(((Activity)getHost().getModel()).getName());
- // cmd.setName((String)request.getCellEditor().getValue());
- // return cmd;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.eclipse.gef.editpolicies.DirectEditPolicy#showCurrentEditValue
- * (org.eclipse.gef.requests.DirectEditRequest)
- */
- @Override
- protected void showCurrentEditValue(DirectEditRequest request) {
-
- }
-
- });
-
installEditPolicy(EditPolicy.COMPONENT_ROLE, new ComponentEditPolicy() {
/*
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/AbstractEDIMappingEditPart.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/AbstractEDIMappingEditPart.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/AbstractEDIMappingEditPart.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -0,0 +1,132 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.edimap.editparts;
+
+import org.eclipse.draw2d.Label;
+import org.eclipse.emf.edit.command.SetCommand;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.gef.DefaultEditDomain;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalViewer;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.gef.editpolicies.DirectEditPolicy;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.jface.viewers.TextCellEditor;
+import org.eclipse.ui.IEditorPart;
+import org.jboss.tools.smooks.edimap.actions.RenameXmlTagNameCommand;
+import org.jboss.tools.smooks.edimap.editor.EDIEdiPartDirectEditManager;
+import org.jboss.tools.smooks.edimap.editor.EDILabelCellEditorLocator;
+import org.jboss.tools.smooks.edimap.editor.EDIMapFormPage;
+import org.jboss.tools.smooks.editor.ISmooksModelProvider;
+import org.jboss.tools.smooks.gef.tree.editparts.TreeNodeEditPart;
+import org.jboss.tools.smooks.gef.tree.figures.TreeNodeFigure;
+import org.jboss.tools.smooks.gef.tree.model.TreeNodeModel;
+import org.jboss.tools.smooks.model.medi.MEdiPackage;
+import org.jboss.tools.smooks.model.medi.MappingNode;
+
+/**
+ * @author Dart (dpeng(a)redhat.com)
+ *
+ */
+public class AbstractEDIMappingEditPart extends TreeNodeEditPart {
+ private DirectEditManager manager;
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.jboss.tools.smooks.gef.tree.editparts.TreeNodeEditPart#performDirectEdit
+ * ()
+ */
+ @Override
+ protected void performDirectEdit() {
+ if (canDirectEdit()) {
+ if (manager == null) {
+ Label l = ((TreeNodeFigure) getFigure()).getLabel();
+ manager = new EDIEdiPartDirectEditManager(this, TextCellEditor.class, new
EDILabelCellEditorLocator(l),
+ l);
+ }
+ manager.show();
+ }
+ }
+
+ protected boolean canDirectEdit() {
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.jboss.tools.smooks.gef.tree.editparts.TreeNodeEditPart#createEditPolicies
+ * ()
+ */
+ @Override
+ protected void createEditPolicies() {
+
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new DirectEditPolicy() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.gef.editpolicies.DirectEditPolicy#getDirectEditCommand
+ * (org.eclipse.gef.requests.DirectEditRequest)
+ */
+ @Override
+ protected Command getDirectEditCommand(DirectEditRequest request) {
+ TreeNodeModel node = (TreeNodeModel) getHost().getModel();
+ GraphicalViewer viewer = (GraphicalViewer) ((AbstractGraphicalEditPart)
getHost()).getViewer();
+ DefaultEditDomain domain = (DefaultEditDomain) viewer.getEditDomain();
+ IEditorPart part = domain.getEditorPart();
+ if (part instanceof EDIMapFormPage) {
+ part = ((EDIMapFormPage) part).getEditor();
+ }
+ if (part instanceof ISmooksModelProvider) {
+ EditingDomain ed = ((ISmooksModelProvider) part).getEditingDomain();
+ Object feature = null;
+ Object owner = node.getData();
+ if (owner instanceof MappingNode) {
+ feature = MEdiPackage.Literals.MAPPING_NODE__XMLTAG;
+ }
+ org.eclipse.emf.common.command.Command command = SetCommand.create(ed,
node.getData(), feature,
+ request.getCellEditor().getValue());
+ if (command != null) {
+ return new RenameXmlTagNameCommand((TreeNodeEditPart) getHost(), ed, command);
+ }
+ }
+ return null;
+ // RenameActivityCommand cmd = new RenameActivityCommand();
+ // cmd.setSource((Activity)getHost().getModel());
+ // cmd.setOldName(((Activity)getHost().getModel()).getName());
+ // cmd.setName((String)request.getCellEditor().getValue());
+ // return cmd;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.gef.editpolicies.DirectEditPolicy#showCurrentEditValue
+ * (org.eclipse.gef.requests.DirectEditRequest)
+ */
+ @Override
+ protected void showCurrentEditValue(DirectEditRequest request) {
+
+ }
+
+ });
+
+ super.createEditPolicies();
+ }
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/AbstractEDIMappingEditPart.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDIDataContainerEditPart.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDIDataContainerEditPart.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDIDataContainerEditPart.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.edimap.editparts;
+
+/**
+ * @author Dart (dpeng(a)redhat.com)
+ *
+ */
+public class EDIDataContainerEditPart extends EDITreeContainerEditPart {
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDIDataContainerEditPart.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDIDataEditPart.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDIDataEditPart.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDIDataEditPart.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.edimap.editparts;
+
+import org.jboss.tools.smooks.edimap.editor.EDITreeNodeEditPart;
+
+/**
+ * @author Dart (dpeng(a)redhat.com)
+ *
+ */
+public class EDIDataEditPart extends EDITreeNodeEditPart{
+
+ /* (non-Javadoc)
+ * @see org.jboss.tools.smooks.edimap.editor.EDITreeNodeEditPart#canDirectEdit()
+ */
+ @Override
+ protected boolean canDirectEdit() {
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.tools.smooks.edimap.editor.EDITreeNodeEditPart#isDragLink()
+ */
+ @Override
+ protected boolean isDragLink() {
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.tools.smooks.edimap.editor.EDITreeNodeEditPart#createEditPolicies()
+ */
+ @Override
+ protected void createEditPolicies() {
+ super.createEditPolicies();
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDIDataEditPart.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDIMappingNodeEditPart.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDIMappingNodeEditPart.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDIMappingNodeEditPart.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.edimap.editparts;
+
+import org.jboss.tools.smooks.edimap.editor.EDITreeNodeEditPart;
+
+/**
+ * @author Dart (dpeng(a)redhat.com)
+ *
+ */
+public class EDIMappingNodeEditPart extends EDITreeNodeEditPart {
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.jboss.tools.smooks.edimap.editor.EDITreeNodeEditPart#canDirectEdit()
+ */
+ @Override
+ protected boolean canDirectEdit() {
+ return true;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.jboss.tools.smooks.edimap.editor.EDITreeNodeEditPart#isDragLink()
+ */
+ @Override
+ protected boolean isDragLink() {
+ return true;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.jboss.tools.smooks.edimap.editor.EDITreeNodeEditPart#createEditPolicies
+ * ()
+ */
+ @Override
+ protected void createEditPolicies() {
+ super.createEditPolicies();
+ }
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDIMappingNodeEditPart.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDITreeContainerEditPart.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDITreeContainerEditPart.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDITreeContainerEditPart.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -0,0 +1,189 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.edimap.editparts;
+
+import java.beans.PropertyChangeEvent;
+
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.edit.command.SetCommand;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.gef.DefaultEditDomain;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalViewer;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.gef.editpolicies.DirectEditPolicy;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.jface.viewers.TextCellEditor;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.forms.editor.FormPage;
+import org.jboss.tools.smooks.configuration.editors.xml.TagObject;
+import org.jboss.tools.smooks.edimap.actions.RenameXmlTagNameCommand;
+import org.jboss.tools.smooks.edimap.editor.EDIEdiPartDirectEditManager;
+import org.jboss.tools.smooks.edimap.editor.EDILabelCellEditorLocator;
+import org.jboss.tools.smooks.edimap.editor.EDIMapFormPage;
+import org.jboss.tools.smooks.editor.ISmooksModelProvider;
+import org.jboss.tools.smooks.gef.tree.editparts.TreeContainerEditPart;
+import org.jboss.tools.smooks.gef.tree.editparts.TreeNodeEditPart;
+import org.jboss.tools.smooks.gef.tree.figures.IMoveableModel;
+import org.jboss.tools.smooks.gef.tree.figures.TreeContainerFigure;
+import org.jboss.tools.smooks.gef.tree.model.TreeNodeModel;
+import org.jboss.tools.smooks.model.graphics.ext.FigureType;
+import org.jboss.tools.smooks.model.graphics.ext.SmooksGraphicsExtType;
+import org.jboss.tools.smooks.model.medi.MEdiPackage;
+import org.jboss.tools.smooks.model.medi.MappingNode;
+import org.jboss.tools.smooks.model.medi.Segments;
+
+/**
+ * @author Dart (dpeng(a)redhat.com)
+ *
+ */
+public class EDITreeContainerEditPart extends TreeContainerEditPart {
+
+ private DirectEditManager manager;
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.jboss.tools.smooks.gef.tree.editparts.TreeNodeEditPart#performDirectEdit
+ * ()
+ */
+ @Override
+ protected void performDirectEdit() {
+ if (canDirectEdit()) {
+ if (manager == null) {
+ Label l = ((TreeContainerFigure) getFigure()).getLabel();
+ manager = new EDIEdiPartDirectEditManager(this, TextCellEditor.class, new
EDILabelCellEditorLocator(l),
+ l);
+ }
+ manager.show();
+ }
+ }
+
+ protected boolean canDirectEdit() {
+ TreeNodeModel model = (TreeNodeModel) getModel();
+ if (model.getData() instanceof MappingNode) {
+ return true;
+ }
+ return false;
+ }
+
+
+ public void propertyChange(PropertyChangeEvent evt) {
+ super.propertyChange(evt);
+ if (IMoveableModel.PRO_BOUNDS_CHANGED.equals(evt.getPropertyName())) {
+ DefaultEditDomain domain = (DefaultEditDomain) getViewer().getEditDomain();
+ IEditorPart editor = domain.getEditorPart();
+ if((editor instanceof FormPage)){
+ editor = ((FormPage)editor).getEditor();
+ }
+
+ if(editor instanceof ISmooksModelProvider && getModel() instanceof
IMoveableModel){
+ SmooksGraphicsExtType graph = ((ISmooksModelProvider)editor).getSmooksGraphicsExt();
+ Rectangle rect = ((IMoveableModel)getModel()).getBounds();
+ recordBounds(graph,rect);
+ }
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see
org.jboss.tools.smooks.gef.tree.editparts.TreeNodeEditPart#recordFigureBounds(org.jboss.tools.smooks.model.graphics.ext.FigureType,
org.eclipse.draw2d.geometry.Rectangle)
+ */
+ @Override
+ protected void recordFigureBounds(FigureType figureType, Rectangle bounds) {
+ figureType.setX(String.valueOf(bounds.getLocation().x));
+ figureType.setY(String.valueOf(bounds.getLocation().y));
+ }
+
+ public static String generateFigureId(Object data){
+ if(data instanceof Segments){
+// String xml = ((MappingNode)data).getXmltag();
+// return "segments_" + xml;
+ return "segments";
+ }
+ if(data instanceof TagObject){
+ return "edi_" + ((TagObject)data).getName();
+ }
+ return null;
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see
org.jboss.tools.smooks.gef.tree.editparts.TreeContainerEditPart#createEditPolicies()
+ */
+ @Override
+ protected void createEditPolicies() {
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new DirectEditPolicy() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.gef.editpolicies.DirectEditPolicy#getDirectEditCommand
+ * (org.eclipse.gef.requests.DirectEditRequest)
+ */
+ @Override
+ protected Command getDirectEditCommand(DirectEditRequest request) {
+ TreeNodeModel node = (TreeNodeModel) getHost().getModel();
+ GraphicalViewer viewer = (GraphicalViewer) ((AbstractGraphicalEditPart)
getHost()).getViewer();
+ DefaultEditDomain domain = (DefaultEditDomain) viewer.getEditDomain();
+ IEditorPart part = domain.getEditorPart();
+ if (part instanceof EDIMapFormPage) {
+ part = ((EDIMapFormPage) part).getEditor();
+ }
+ if (part instanceof ISmooksModelProvider) {
+ EditingDomain ed = ((ISmooksModelProvider) part).getEditingDomain();
+ Object feature = null;
+ Object owner = node.getData();
+ if (owner instanceof MappingNode) {
+ feature = MEdiPackage.Literals.MAPPING_NODE__XMLTAG;
+ }
+ org.eclipse.emf.common.command.Command command = SetCommand.create(ed,
node.getData(), feature,
+ request.getCellEditor().getValue());
+ if (command != null) {
+ return new RenameXmlTagNameCommand((TreeNodeEditPart) getHost(), ed, command);
+ }
+ }
+ return null;
+ // RenameActivityCommand cmd = new RenameActivityCommand();
+ // cmd.setSource((Activity)getHost().getModel());
+ // cmd.setOldName(((Activity)getHost().getModel()).getName());
+ // cmd.setName((String)request.getCellEditor().getValue());
+ // return cmd;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.gef.editpolicies.DirectEditPolicy#showCurrentEditValue
+ * (org.eclipse.gef.requests.DirectEditRequest)
+ */
+ @Override
+ protected void showCurrentEditValue(DirectEditRequest request) {
+
+ }
+
+ });
+ super.createEditPolicies();
+ }
+
+ protected String generateFigureID(){
+ TreeNodeModel model = (TreeNodeModel) getModel();
+ Object data = model.getData();
+ return generateFigureId(data);
+ }
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDITreeContainerEditPart.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIDataContainerGraphModel.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIDataContainerGraphModel.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIDataContainerGraphModel.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -0,0 +1,54 @@
+package org.jboss.tools.smooks.edimap.models;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.jboss.tools.smooks.gef.tree.model.TreeContainerModel;
+import org.jboss.tools.smooks.gef.tree.model.TreeNodeModel;
+
+public class EDIDataContainerGraphModel extends TreeContainerModel {
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.jboss.tools.smooks.gef.tree.model.TreeNodeModel#createChildModel(
+ * java.lang.Object, org.eclipse.jface.viewers.ITreeContentProvider,
+ * org.eclipse.jface.viewers.ILabelProvider)
+ */
+ @Override
+ protected TreeNodeModel createChildModel(Object model, ITreeContentProvider
contentProvider,
+ ILabelProvider labelProvider) {
+ // TODO Auto-generated method stub
+ return new EDIDataGraphModel(model, contentProvider, labelProvider);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.jboss.tools.smooks.gef.tree.model.TreeNodeModel#canLinkWithSource
+ * (java.lang.Object)
+ */
+ @Override
+ public boolean canLinkWithSource(Object model) {
+ if(model instanceof EDIMappingNodeGraphModel){
+ return true;
+ }
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.jboss.tools.smooks.gef.tree.model.TreeNodeModel#canLinkWithTarget
+ * (java.lang.Object)
+ */
+ @Override
+ public boolean canLinkWithTarget(Object model) {
+ return false;
+ }
+
+ public EDIDataContainerGraphModel(Object data, ITreeContentProvider contentProvider,
ILabelProvider labelProvider) {
+ super(data, contentProvider, labelProvider);
+ }
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIDataContainerGraphModel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIDataGraphModel.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIDataGraphModel.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIDataGraphModel.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -0,0 +1,49 @@
+package org.jboss.tools.smooks.edimap.models;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.jboss.tools.smooks.gef.tree.model.TreeNodeModel;
+
+public class EDIDataGraphModel extends TreeNodeModel {
+
+ public EDIDataGraphModel(Object data, ITreeContentProvider contentProvider,
ILabelProvider labelProvider) {
+ super(data, contentProvider, labelProvider);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.jboss.tools.smooks.gef.tree.model.TreeNodeModel#createChildModel(
+ * java.lang.Object, org.eclipse.jface.viewers.ITreeContentProvider,
+ * org.eclipse.jface.viewers.ILabelProvider)
+ */
+ @Override
+ protected TreeNodeModel createChildModel(Object model, ITreeContentProvider
contentProvider,
+ ILabelProvider labelProvider) {
+ return new EDIDataGraphModel(model, contentProvider, labelProvider);
+ }
+
+ /* (non-Javadoc)
+ * @see
org.jboss.tools.smooks.gef.tree.model.TreeNodeModel#canLinkWithSource(java.lang.Object)
+ */
+ @Override
+ public boolean canLinkWithSource(Object model) {
+ // TODO Auto-generated method stub
+ return super.canLinkWithSource(model);
+ }
+
+ /* (non-Javadoc)
+ * @see
org.jboss.tools.smooks.gef.tree.model.TreeNodeModel#canLinkWithTarget(java.lang.Object)
+ */
+ @Override
+ public boolean canLinkWithTarget(Object model) {
+ // TODO Auto-generated method stub
+ return super.canLinkWithTarget(model);
+ }
+
+
+
+
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIDataGraphModel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIMappingNodeContainerGraphModel.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIMappingNodeContainerGraphModel.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIMappingNodeContainerGraphModel.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -0,0 +1,54 @@
+package org.jboss.tools.smooks.edimap.models;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.jboss.tools.smooks.gef.tree.model.TreeContainerModel;
+import org.jboss.tools.smooks.gef.tree.model.TreeNodeModel;
+
+public class EDIMappingNodeContainerGraphModel extends TreeContainerModel {
+
+ public EDIMappingNodeContainerGraphModel(Object data, ITreeContentProvider
contentProvider, ILabelProvider labelProvider) {
+ super(data, contentProvider, labelProvider);
+ // TODO Auto-generated constructor stub
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.jboss.tools.smooks.gef.tree.model.TreeNodeModel#createChildModel(
+ * java.lang.Object, org.eclipse.jface.viewers.ITreeContentProvider,
+ * org.eclipse.jface.viewers.ILabelProvider)
+ */
+ @Override
+ protected TreeNodeModel createChildModel(Object model, ITreeContentProvider
contentProvider,
+ ILabelProvider labelProvider) {
+ // TODO Auto-generated method stub
+ return new EDIMappingNodeGraphModel(model, contentProvider, labelProvider);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.jboss.tools.smooks.gef.tree.model.TreeNodeModel#canLinkWithSource
+ * (java.lang.Object)
+ */
+ @Override
+ public boolean canLinkWithSource(Object model) {
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.jboss.tools.smooks.gef.tree.model.TreeNodeModel#canLinkWithTarget
+ * (java.lang.Object)
+ */
+ @Override
+ public boolean canLinkWithTarget(Object model) {
+ return false;
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIMappingNodeContainerGraphModel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIMappingNodeGraphModel.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIMappingNodeGraphModel.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIMappingNodeGraphModel.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.edimap.models;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.jboss.tools.smooks.gef.tree.model.TreeNodeModel;
+import org.jboss.tools.smooks.model.medi.Segment;
+
+/**
+ * @author Dart (dpeng(a)redhat.com)
+ *
+ */
+public class EDIMappingNodeGraphModel extends TreeNodeModel {
+
+ public EDIMappingNodeGraphModel(Object data, ITreeContentProvider contentProvider,
ILabelProvider labelProvider) {
+ super(data, contentProvider, labelProvider);
+ }
+
+ /* (non-Javadoc)
+ * @see
org.jboss.tools.smooks.gef.tree.model.TreeNodeModel#createChildModel(java.lang.Object,
org.eclipse.jface.viewers.ITreeContentProvider, org.eclipse.jface.viewers.ILabelProvider)
+ */
+ @Override
+ protected TreeNodeModel createChildModel(Object model, ITreeContentProvider
contentProvider,
+ ILabelProvider labelProvider) {
+ return new EDIMappingNodeGraphModel(model, contentProvider, labelProvider);
+ }
+
+ /* (non-Javadoc)
+ * @see
org.jboss.tools.smooks.gef.tree.model.TreeNodeModel#canLinkWithSource(java.lang.Object)
+ */
+ @Override
+ public boolean canLinkWithSource(Object model) {
+ return false;
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see org.jboss.tools.smooks.gef.tree.model.TreeNodeModel#isLinkable()
+ */
+ @Override
+ public boolean isLinkable() {
+ Object nodeModel = getData();
+ if(!(nodeModel instanceof Segment)){
+ return false;
+ }
+ return super.isLinkable();
+ }
+
+ /* (non-Javadoc)
+ * @see
org.jboss.tools.smooks.gef.tree.model.TreeNodeModel#canLinkWithTarget(java.lang.Object)
+ */
+ @Override
+ public boolean canLinkWithTarget(Object model) {
+ Object nodeModel = getData();
+ if(!(nodeModel instanceof Segment)){
+ return false;
+ }
+ if(model instanceof EDIDataContainerGraphModel){
+ return true;
+ }
+ return false;
+ }
+
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIMappingNodeGraphModel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/editor/AbstractSmooksFormEditor.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/editor/AbstractSmooksFormEditor.java 2009-07-13
01:44:56 UTC (rev 16542)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/editor/AbstractSmooksFormEditor.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -371,6 +371,7 @@
monitor.beginTask("Saving Smooks config file", resourceList.size());
for (Iterator<Resource> iterator = resourceList.iterator();
iterator.hasNext();) {
+ handleEMFModelChange = true;
Resource resource = (Resource) iterator.next();
resource.save(options);
monitor.worked(1);
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/common/SmooksGraphicalMenuContextProvider.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/common/SmooksGraphicalMenuContextProvider.java 2009-07-13
01:44:56 UTC (rev 16542)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/common/SmooksGraphicalMenuContextProvider.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -56,10 +56,10 @@
menu.add(new Separator(GROUP_CUSTOME));
GEFActionConstants.addStandardActionGroups(menu);
IAction action;
- action = getActionRegistry().getAction(ActionFactory.UNDO.getId());
- menu.appendToGroup(GEFActionConstants.GROUP_UNDO, action);
- action = getActionRegistry().getAction(ActionFactory.REDO.getId());
- menu.appendToGroup(GEFActionConstants.GROUP_UNDO, action);
+// action = getActionRegistry().getAction(ActionFactory.UNDO.getId());
+// menu.appendToGroup(GEFActionConstants.GROUP_UNDO, action);
+// action = getActionRegistry().getAction(ActionFactory.REDO.getId());
+// menu.appendToGroup(GEFActionConstants.GROUP_UNDO, action);
action = getActionRegistry().getAction(ActionFactory.DELETE.getId());
if (action.isEnabled())
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/editparts/TreeContainerEditPart.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/editparts/TreeContainerEditPart.java 2009-07-13
01:44:56 UTC (rev 16542)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/editparts/TreeContainerEditPart.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -6,17 +6,13 @@
import java.beans.PropertyChangeEvent;
import java.util.List;
-import org.eclipse.draw2d.ChopboxAnchor;
import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.ConnectionAnchor;
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.ConnectionEditPart;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.Request;
import org.jboss.tools.smooks.gef.tree.editpolicy.TreeNodeGraphicalNodeEditPolicy;
import org.jboss.tools.smooks.gef.tree.figures.IMoveableModel;
import org.jboss.tools.smooks.gef.tree.figures.TreeContainerFigure;
@@ -48,17 +44,17 @@
figure.setText(text);
}
boolean isSource = this.isSourceLinkNodeEditPart();
- if(!isSource){
+ if (!isSource) {
IFigure figure = getFigure();
- if(figure instanceof TreeContainerFigure){
- ((TreeContainerFigure)figure).setHeaderColor(ColorConstants.orange);
+ if (figure instanceof TreeContainerFigure) {
+ ((TreeContainerFigure) figure).setHeaderColor(ColorConstants.orange);
}
}
Point location = model.getLocation();
Dimension size = getFigure().getPreferredSize();
try {
- ((GraphicalEditPart) this.getParent()).setLayoutConstraint(this, this
- .getFigure(),new Rectangle(location,size));
+ ((GraphicalEditPart) this.getParent()).setLayoutConstraint(this, this.getFigure(), new
Rectangle(location,
+ size));
} catch (Exception e) {
e.printStackTrace();
}
@@ -68,19 +64,19 @@
if (getFigure() instanceof TreeContainerFigure) {
TreeContainerFigure t = (TreeContainerFigure) getFigure();
return t.getContentFigure();
- }else{
+ } else {
return getFigure();
}
}
-
- public TreeContainerEditPart getTreeContainerEditPart(){
+
+ public TreeContainerEditPart getTreeContainerEditPart() {
return this;
}
-
- public boolean isSourceLinkNodeEditPart(){
+
+ public boolean isSourceLinkNodeEditPart() {
Object model = getModel();
- if(model != null && model instanceof TreeContainerModel){
- return ((TreeContainerModel)model).isSourceLinkNode();
+ if (model != null && model instanceof TreeContainerModel) {
+ return ((TreeContainerModel) model).isSourceLinkNode();
}
return false;
}
@@ -91,51 +87,49 @@
refresh();
}
}
-
+
@Override
protected void createEditPolicies() {
this.installEditPolicy(EditPolicy.NODE_ROLE, new TreeNodeGraphicalNodeEditPolicy());
}
-
-
- @Override
- public ConnectionAnchor getSourceConnectionAnchor(
- ConnectionEditPart connection) {
- return new ChopboxAnchor(getFigure());
- }
+ // @Override
+ // public ConnectionAnchor getSourceConnectionAnchor(
+ // ConnectionEditPart connection) {
+ // return new ChopboxAnchor(getFigure());
+ // }
+ //
+ // @Override
+ // public ConnectionAnchor getSourceConnectionAnchor(Request request) {
+ // return new ChopboxAnchor(getFigure());
+ // }
+ //
+ // @Override
+ // public ConnectionAnchor getTargetConnectionAnchor(
+ // ConnectionEditPart connection) {
+ // return new ChopboxAnchor(getFigure());
+ // }
+ //
+ // @Override
+ // public ConnectionAnchor getTargetConnectionAnchor(Request request) {
+ // return new ChopboxAnchor(getFigure());
+ // }
@Override
- public ConnectionAnchor getSourceConnectionAnchor(Request request) {
- return new ChopboxAnchor(getFigure());
- }
-
- @Override
- public ConnectionAnchor getTargetConnectionAnchor(
- ConnectionEditPart connection) {
- return new ChopboxAnchor(getFigure());
- }
-
- @Override
- public ConnectionAnchor getTargetConnectionAnchor(Request request) {
- return new ChopboxAnchor(getFigure());
- }
-
- @Override
public List<?> getModelChildren() {
TreeNodeModel node = (TreeNodeModel) getModel();
return node.getChildren();
-// return super.getModelChildren();
+ // return super.getModelChildren();
}
@Override
public void treeCollapsed(TreeFigureExpansionEvent event) {
- super.treeCollapsed(event);
+ // super.treeCollapsed(event);
}
@Override
public void treeExpanded(TreeFigureExpansionEvent event) {
- super.treeExpanded(event);
+ // super.treeExpanded(event);
}
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/editparts/TreeNodeConnectionEditPart.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/editparts/TreeNodeConnectionEditPart.java 2009-07-13
01:44:56 UTC (rev 16542)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/editparts/TreeNodeConnectionEditPart.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -38,7 +38,13 @@
TreeNodeConnection model = (TreeNodeConnection) getModel();
TreeNodeModel sourceModel = model.getSourceNode();
TreeNodeModel targetModel = model.getTargetNode();
- PolylineConnection connection1 = new PolylineConnection();
+ PolylineConnection connection1 = new PolylineConnection(){
+ @Override
+ public void paintFigure(Graphics graphics) {
+ graphics.setAlpha(alpha);
+ super.paintFigure(graphics);
+ }
+ };
if (sourceModel instanceof TreeContainerModel || targetModel instanceof
TreeContainerModel) {
// connection1.setConnectionRouter(new ManhattanConnectionRouter());
connection1.setTargetDecoration(new PolygonDecoration());
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/editparts/TreeNodeEditPart.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/editparts/TreeNodeEditPart.java 2009-07-13
01:44:56 UTC (rev 16542)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/editparts/TreeNodeEditPart.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -13,15 +13,18 @@
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.gef.ConnectionEditPart;
+import org.eclipse.gef.DragTracker;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.NodeEditPart;
import org.eclipse.gef.Request;
import org.eclipse.gef.RequestConstants;
+import org.eclipse.gef.tools.ConnectionDragCreationTool;
import org.jboss.tools.smooks.gef.tree.editpolicy.TreeNodeGraphicalNodeEditPolicy;
import org.jboss.tools.smooks.gef.tree.editpolicy.TreeNodeSelectEditPolicy;
import org.jboss.tools.smooks.gef.tree.figures.ITreeFigureListener;
import org.jboss.tools.smooks.gef.tree.figures.LeftOrRightAnchor;
+import org.jboss.tools.smooks.gef.tree.figures.TreeContainerFigure;
import org.jboss.tools.smooks.gef.tree.figures.TreeFigureExpansionEvent;
import org.jboss.tools.smooks.gef.tree.figures.TreeNodeFigure;
import org.jboss.tools.smooks.gef.tree.model.IConnectableNode;
@@ -50,6 +53,30 @@
return figure;
}
+ /**
+ * @return the dragLink
+ */
+ protected boolean isDragLink() {
+ return false;
+ }
+
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.gef.editparts.AbstractGraphicalEditPart#getDragTracker(org
+ * .eclipse.gef.Request)
+ */
+ public DragTracker getDragTracker(Request request) {
+ if (isDragLink()) {
+ getViewer().select(this);
+ return new ConnectionDragCreationTool();
+ } else {
+ return super.getDragTracker(request);
+ }
+ }
+
public TreeContainerEditPart getTreeContainerEditPart() {
EditPart parent = this.getParent();
while (parent != null && (parent.getClass() != TreeContainerEditPart.class)) {
@@ -61,6 +88,20 @@
return null;
}
+ public void expandNode() {
+ IFigure figure1 = getFigure();
+ if (figure1 instanceof TreeNodeFigure) {
+ ((TreeNodeFigure) figure1).expandNode();
+ }
+ }
+
+ public void collapsedNode() {
+ IFigure figure1 = getFigure();
+ if (figure1 instanceof TreeNodeFigure) {
+ ((TreeNodeFigure) figure1).collapsedNode();
+ }
+ }
+
public boolean isSourceLinkNodeEditPart() {
TreeContainerEditPart container = getTreeContainerEditPart();
if (container != null)
@@ -145,35 +186,35 @@
refreshTargetConnections();
}
}
-
- protected void recordBounds(SmooksGraphicsExtType graphicsExt,Rectangle bounds){
+
+ protected void recordBounds(SmooksGraphicsExtType graphicsExt, Rectangle bounds) {
GraphType graph = graphicsExt.getGraph();
- if(graph == null ){
+ if (graph == null) {
graph = GraphFactory.eINSTANCE.createGraphType();
graphicsExt.setGraph(graph);
}
String figureId = generateFigureID();
- if(figureId == null) return;
+ if (figureId == null)
+ return;
FigureType figure = SmooksModelUtils.findFigureType(graph, figureId);
-
- if(figure == null){
+
+ if (figure == null) {
figure = GraphFactory.eINSTANCE.createFigureType();
figure.setId(figureId);
graph.getFigure().add(figure);
}
- recordFigureBounds(figure,bounds);
+ recordFigureBounds(figure, bounds);
}
-
- protected void recordFigureBounds(FigureType figureType,Rectangle bounds){
+
+ protected void recordFigureBounds(FigureType figureType, Rectangle bounds) {
figureType.setX(String.valueOf(bounds.getLocation().x));
figureType.setY(String.valueOf(bounds.getLocation().y));
-
+
figureType.setHeight(String.valueOf(bounds.getSize().height));
figureType.setWidth(String.valueOf(bounds.getSize().width));
}
-
-
- protected String generateFigureID(){
+
+ protected String generateFigureID() {
return null;
}
@@ -182,11 +223,12 @@
return anchorFigure;
else {
IFigure figure = getFigure();
+ anchorFigure = figure;
+ if (figure instanceof TreeContainerFigure) {
+ anchorFigure = ((TreeContainerFigure) figure).getLabel();
+ }
if (figure instanceof TreeNodeFigure) {
anchorFigure = ((TreeNodeFigure) figure).getLabel();
- return anchorFigure;
- } else {
- anchorFigure = getFigure();
}
}
return anchorFigure;
@@ -196,9 +238,9 @@
anchorFigure = null;
EditPart parent = getParent();
List<TreeNodeEditPart> parentList = new ArrayList<TreeNodeEditPart>();
- while (parent != null && parent.getClass() == TreeNodeEditPart.class) {
+ while (parent != null && parent instanceof TreeNodeEditPart) {
parentList.add((TreeNodeEditPart) parent);
- if (parent.getParent() == null || parent.getParent().getClass() !=
TreeNodeEditPart.class) {
+ if (parent.getParent() == null || !(parent.getParent() instanceof TreeNodeEditPart))
{
break;
}
parent = parent.getParent();
@@ -235,7 +277,7 @@
List<?> childrenEditParts = getChildren();
for (Iterator<?> iterator = childrenEditParts.iterator(); iterator.hasNext();) {
EditPart child = (EditPart) iterator.next();
- if (child.getClass() == TreeNodeEditPart.class) {
+ if (child instanceof TreeNodeEditPart) {
((TreeNodeEditPart) child).caculateAnchorFigure();
}
}
@@ -269,20 +311,18 @@
}
public ConnectionAnchor getSourceConnectionAnchor(ConnectionEditPart connection) {
- return new LeftOrRightAnchor(getAnchorFigure(), false);
+ return new LeftOrRightAnchor(getAnchorFigure());
}
public ConnectionAnchor getSourceConnectionAnchor(Request request) {
- return new LeftOrRightAnchor(getAnchorFigure(), false);
+ return new LeftOrRightAnchor(getAnchorFigure());
}
public ConnectionAnchor getTargetConnectionAnchor(ConnectionEditPart connection) {
- boolean isLeft = !isSourceLinkNodeEditPart();
- return new LeftOrRightAnchor(getAnchorFigure(), isLeft);
+ return new LeftOrRightAnchor(getAnchorFigure());
}
public ConnectionAnchor getTargetConnectionAnchor(Request request) {
- boolean isLeft = !isSourceLinkNodeEditPart();
- return new LeftOrRightAnchor(getAnchorFigure(), isLeft);
+ return new LeftOrRightAnchor(getAnchorFigure());
}
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/editpolicy/TreeNodeGraphicalNodeEditPolicy.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/editpolicy/TreeNodeGraphicalNodeEditPolicy.java 2009-07-13
01:44:56 UTC (rev 16542)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/editpolicy/TreeNodeGraphicalNodeEditPolicy.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -13,51 +13,68 @@
/**
* @author DartPeng
- *
+ *
*/
public class TreeNodeGraphicalNodeEditPolicy extends GraphicalNodeEditPolicy {
- /* (non-Javadoc)
- * @see
org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#getConnectionCompleteCommand(org.eclipse.gef.requests.CreateConnectionRequest)
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#
+ * getConnectionCompleteCommand
+ * (org.eclipse.gef.requests.CreateConnectionRequest)
*/
@Override
- protected Command getConnectionCompleteCommand(
- CreateConnectionRequest request) {
+ protected Command getConnectionCompleteCommand(CreateConnectionRequest request) {
Command command = request.getStartCommand();
- if(command != null && command instanceof CreateConnectionCommand){
+ if (command != null && command instanceof CreateConnectionCommand) {
Object targetModel = request.getTargetEditPart().getModel();
- if(targetModel instanceof TreeNodeModel){
- if(!((TreeNodeModel)targetModel).isLinkable()) return null;
- ((CreateConnectionCommand)command).setTarget((TreeNodeModel)targetModel);
+ if (targetModel instanceof TreeNodeModel) {
+ if (!((TreeNodeModel) targetModel).canLinkWithSource(((CreateConnectionCommand)
command).getSource()))
+ return null;
+ Object source = ((CreateConnectionCommand) command).getSource();
+ if(source instanceof TreeNodeModel){
+ if (!((TreeNodeModel) source).canLinkWithTarget(targetModel))
+ return null;
+ }
+ ((CreateConnectionCommand) command).setTarget((TreeNodeModel) targetModel);
return command;
}
}
return null;
}
- /* (non-Javadoc)
- * @see
org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#getConnectionCreateCommand(org.eclipse.gef.requests.CreateConnectionRequest)
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#
+ * getConnectionCreateCommand
+ * (org.eclipse.gef.requests.CreateConnectionRequest)
*/
@Override
protected Command getConnectionCreateCommand(CreateConnectionRequest request) {
EditPart sourceEditpart = request.getSourceEditPart();
Object model = null;
- if(sourceEditpart == null){
+ if (sourceEditpart == null) {
sourceEditpart = getHost();
}
model = sourceEditpart.getModel();
- if(model != null && model instanceof TreeNodeModel){
- if(!((TreeNodeModel)model).isLinkable()) return null;
+ if (model != null && model instanceof TreeNodeModel) {
+ if (!((TreeNodeModel) model).isLinkable())
+ return null;
CreateConnectionCommand command = new CreateConnectionCommand();
- command.setSource((TreeNodeModel)model);
+ command.setSource((TreeNodeModel) model);
request.setStartCommand(command);
return command;
}
return null;
}
- /* (non-Javadoc)
- * @see
org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#getReconnectSourceCommand(org.eclipse.gef.requests.ReconnectRequest)
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#
+ * getReconnectSourceCommand(org.eclipse.gef.requests.ReconnectRequest)
*/
@Override
protected Command getReconnectSourceCommand(ReconnectRequest request) {
@@ -65,8 +82,11 @@
return null;
}
- /* (non-Javadoc)
- * @see
org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#getReconnectTargetCommand(org.eclipse.gef.requests.ReconnectRequest)
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#
+ * getReconnectTargetCommand(org.eclipse.gef.requests.ReconnectRequest)
*/
@Override
protected Command getReconnectTargetCommand(ReconnectRequest request) {
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/figures/LeftOrRightAnchor.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/figures/LeftOrRightAnchor.java 2009-07-13
01:44:56 UTC (rev 16542)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/figures/LeftOrRightAnchor.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -6,20 +6,13 @@
public class LeftOrRightAnchor extends ChopboxAnchor {
- private boolean isLeft = false;
- public LeftOrRightAnchor(IFigure owner , boolean isLeft) {
+ public LeftOrRightAnchor(IFigure owner) {
super(owner);
- this.isLeft = isLeft;
}
public Point getReferencePoint(){
- Point point = super.getReferencePoint();
- if(isLeft){
- return new Point(point.x + 30,point.y);
- }else{
- return new Point(point.x - 30,point.y);
- }
+ return super.getReferencePoint();
}
public Point getLocation(Point reference) {
@@ -34,6 +27,13 @@
}
p = getOwner().getBounds().getCenter();
getOwner().translateToAbsolute(p);
+ Point referencePoint = reference;
+ boolean isLeft = false;
+ if(referencePoint.x > p.x){
+ isLeft = false;
+ }else{
+ isLeft = true;
+ }
if (isLeft){
p = getOwner().getBounds().getLeft();
p.x = parent.getBounds().getLeft().x - 2;
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/figures/TreeContainerFigure.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/figures/TreeContainerFigure.java 2009-07-13
01:44:56 UTC (rev 16542)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/figures/TreeContainerFigure.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -70,6 +70,20 @@
this.setLayoutManager(new ToolbarLayout());
}
+ /**
+ * @return the label
+ */
+ public Label getLabel() {
+ return label;
+ }
+
+ /**
+ * @param label the label to set
+ */
+ public void setLabel(Label label) {
+ this.label = label;
+ }
+
public IFigure getContentFigure() {
return contentFigure;
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/figures/TreeNodeFigure.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/figures/TreeNodeFigure.java 2009-07-13
01:44:56 UTC (rev 16542)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/figures/TreeNodeFigure.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -321,6 +321,16 @@
graphics.popState();
}
}
+
+ public void expandNode(){
+ expand = false;
+ changeTreeExpansionState();
+ }
+
+ public void collapsedNode(){
+ expand = true;
+ changeTreeExpansionState();
+ }
private void changeTreeExpansionState() {
try {
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeNodeModel.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeNodeModel.java 2009-07-13
01:44:56 UTC (rev 16542)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeNodeModel.java 2009-07-13
08:56:40 UTC (rev 16543)
@@ -85,6 +85,11 @@
this.labelProvider = labelProvider;
}
+ protected TreeNodeModel createChildModel(Object model, ITreeContentProvider
contentProvider,
+ ILabelProvider labelProvider) {
+ return new TreeNodeModel(model, contentProvider, labelProvider);
+ }
+
public List<TreeNodeModel> getChildren() {
if (children == null) {
if (this.contentProvider != null && data != null) {
@@ -93,8 +98,9 @@
children = new ArrayList<TreeNodeModel>();
for (int i = 0; i < models.length; i++) {
Object model = models[i];
- TreeNodeModel n = new TreeNodeModel(model, contentProvider, labelProvider);
+ TreeNodeModel n = createChildModel(model, contentProvider, labelProvider);
children.add(n);
+ n.setParent(this);
}
return children;
}
@@ -107,9 +113,9 @@
for (int i = 0; i < models.length; i++) {
Object model = models[i];
if (!childExsit(model)) {
- TreeNodeModel n = new TreeNodeModel(model, contentProvider, labelProvider);
-// this.addChild(n);
+ TreeNodeModel n = createChildModel(model, contentProvider, labelProvider);
children.add(n);
+ n.setParent(this);
}
}
List<TreeNodeModel> temp = new ArrayList<TreeNodeModel>(children);
@@ -117,8 +123,8 @@
TreeNodeModel node = (TreeNodeModel) iterator.next();
Object data = node.getData();
if (!graphicalChildExist(data, models)) {
-// this.removeChild(node);
children.remove(node);
+ node.setParent(null);
}
}
temp.clear();
@@ -240,6 +246,14 @@
this.linkable = linkable;
}
+ public boolean canLinkWithSource(Object model) {
+ return true;
+ }
+
+ public boolean canLinkWithTarget(Object model) {
+ return true;
+ }
+
public void setText(String text) {
// if (text != null && !text.equals(this.text)) {
// String oldtext = this.text;