Author: DartPeng
Date: 2009-07-23 07:19:10 -0400 (Thu, 23 Jul 2009)
New Revision: 16746
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/model/
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/model/AbstractSmooksGraphicalModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/SmooksEditFactory.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/SmooksGraphicalEditorPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/AbstractSmooksElementEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/InputDataContainerEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/InputDataTreeNodeEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/SmooksElementContainerEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/SmooksElementEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/InputDataContianerModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/InputDataTreeNodeModel.java
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMultiFormEditor.java
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/EDIMapFormPage.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/EDIMappingNodeGraphModel.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/model/TreeContainerModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeNodeConnection.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeNodeModel.java
Log:
JBIDE-4648
Add new graphical page on Smooks multi editor
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMultiFormEditor.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMultiFormEditor.java 2009-07-23
01:16:12 UTC (rev 16745)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMultiFormEditor.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -12,11 +12,14 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.Iterator;
import java.util.List;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.ui.PartInitException;
import org.jboss.tools.smooks.editor.AbstractSmooksFormEditor;
+import org.jboss.tools.smooks.graphical.editors.SmooksGraphicalEditorPart;
/**
*
@@ -25,10 +28,14 @@
public class SmooksMultiFormEditor extends AbstractSmooksFormEditor {
public static final String EDITOR_ID =
"org.jboss.tools.smooks.configuration.editors.MultiPageEditor";
-
+
private SmooksConfigurationFormPage configurationPage;
- /* (non-Javadoc)
+ private SmooksGraphicalEditorPart graphicalPage;
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.jboss.tools.smooks.editor.AbstractSmooksFormEditor#addPages()
*/
@Override
@@ -41,15 +48,42 @@
} catch (PartInitException e) {
e.printStackTrace();
}
+
+// graphicalPage = new SmooksGraphicalEditorPart(this);
+// try {
+// int index = this.addPage(graphicalPage, getEditorInput());
+// setPageText(index, "Graph");
+// } catch (PartInitException e) {
+// e.printStackTrace();
+// }
+
super.addPages();
}
-
+
+ @Override
+ public void doSave(IProgressMonitor monitor) {
+ super.doSave(monitor);
+ try {
+ getSmooksGraphicsExt().eResource().save(Collections.emptyMap());
+ if (graphicalPage != null) {
+ if (graphicalPage.getEditDomain() != null) {
+ graphicalPage.getEditDomain().getCommandStack().flush();
+ }
+ }
+ firePropertyChange(PROP_DIRTY);
+ } catch (Throwable t) {
+ }
+ }
+
protected SmooksConfigurationFormPage createSmooksConfigurationFormPage() {
return new SmooksConfigurationFormPage(this, "DesignPage", "Design
Page");
}
- /* (non-Javadoc)
- * @see
org.jboss.tools.smooks.editor.AbstractSmooksFormEditor#activeRecentAffectedModel(java.util.Collection)
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.jboss.tools.smooks.editor.AbstractSmooksFormEditor#
+ * activeRecentAffectedModel(java.util.Collection)
*/
@Override
public void activeRecentAffectedModel(Collection<?> collection) {
@@ -67,8 +101,11 @@
}
}
- /* (non-Javadoc)
- * @see
org.jboss.tools.smooks.editor.AbstractSmooksFormEditor#createNewModelViaTextPage()
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.jboss.tools.smooks.editor.AbstractSmooksFormEditor#
+ * createNewModelViaTextPage()
*/
@Override
protected void createNewModelViaTextPage() {
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-23
01:16:12 UTC (rev 16745)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -1105,8 +1105,9 @@
if (resource == null)
return null;
URI uri = resource.getURI();
-
- if(uri == null) return null;
+
+ if (uri == null)
+ return null;
IResource workspaceResource = null;
if (uri.isPlatformResource()) {
String path = uri.toPlatformString(true);
@@ -1485,7 +1486,8 @@
}
public static IFile getFile(String uri, IProject project) {
- if(project == null) return null;
+ if (project == null)
+ return null;
if (uri.charAt(0) == '\\' || uri.charAt(0) == '/') {
uri = uri.substring(1);
}
@@ -2266,16 +2268,19 @@
}
}
- public static void expandGraphTree(List<TreeNodeModel> expandNodes,
TreeNodeEditPart rootEditPart) {
+ public static void expandGraphTree(List<?> expandNodes, TreeNodeEditPart
rootEditPart) {
for (Iterator<?> iterator = expandNodes.iterator(); iterator.hasNext();) {
- TreeNodeModel treeNodeModel = (TreeNodeModel) iterator.next();
+ Object obj = iterator.next();
+ if (!(obj instanceof TreeNodeModel))
+ continue;
+ TreeNodeModel treeNodeModel = (TreeNodeModel) obj;
TreeNodeModel parent = treeNodeModel;
if (parent == null)
continue;
List<TreeNodeModel> parentList = new ArrayList<TreeNodeModel>();
boolean canExpand = true;
while (parent != rootEditPart.getModel()) {
- parent = parent.getParent();
+ parent = (TreeNodeModel) parent.getParent();
if (parent == null) {
canExpand = false;
break;
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-23
01:16:12 UTC (rev 16745)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editor/EDIMapFormPage.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -107,6 +107,7 @@
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.model.AbstractSmooksGraphicalModel;
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.TreeNodeConnection;
@@ -509,6 +510,9 @@
return editDomain.getCommandStack();
}
}
+ if (type == ISmooksModelProvider.class) {
+ return this.modelProvider;
+ }
if (type == GraphicalViewer.class)
return getGraphicalViewer();
if (type == ActionRegistry.class)
@@ -1065,7 +1069,7 @@
List<TreeNodeConnection> connections = source.getSourceConnections();
for (Iterator<?> iterator = connections.iterator(); iterator.hasNext();) {
TreeNodeConnection treeNodeConnection = (TreeNodeConnection) iterator.next();
- if(treeNodeConnection.getTargetNode() == target){
+ if (treeNodeConnection.getTargetNode() == target) {
return true;
}
}
@@ -1107,19 +1111,19 @@
private TreeNodeModel findEDIGraphicalModel(Object model) {
if (graphicalRootModel != null) {
List<TreeNodeModel> treeNodeList = graphicalRootModel.getChildren();
- return findEDIGraphicalModel(model, treeNodeList);
+ return (TreeNodeModel)findEDIGraphicalModel(model, treeNodeList);
}
return null;
}
- private TreeNodeModel findEDIGraphicalModel(Object model, List<TreeNodeModel>
treeNodeList) {
+ private AbstractSmooksGraphicalModel findEDIGraphicalModel(Object model, List<?>
treeNodeList) {
for (Iterator<?> iterator = treeNodeList.iterator(); iterator.hasNext();) {
- TreeNodeModel treeNodeModel = (TreeNodeModel) iterator.next();
+ AbstractSmooksGraphicalModel treeNodeModel = (AbstractSmooksGraphicalModel)
iterator.next();
Object data = treeNodeModel.getData();
if (data == model) {
return treeNodeModel;
}
- TreeNodeModel m = findEDIGraphicalModel(model, treeNodeModel.getChildren());
+ AbstractSmooksGraphicalModel m = findEDIGraphicalModel(model,
treeNodeModel.getChildren());
if (m != null) {
return m;
}
Modified:
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 2009-07-23
01:16:12 UTC (rev 16745)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/editparts/EDITreeContainerEditPart.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -26,7 +26,6 @@
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;
@@ -35,11 +34,9 @@
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;
@@ -82,19 +79,19 @@
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);
- }
- }
+// 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);
+// }
+// }
}
Modified:
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 2009-07-23
01:16:12 UTC (rev 16745)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/edimap/models/EDIMappingNodeGraphModel.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -16,6 +16,7 @@
import org.eclipse.emf.edit.domain.IEditingDomainProvider;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.jboss.tools.smooks.gef.model.AbstractSmooksGraphicalModel;
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.MEdiPackage;
@@ -72,7 +73,7 @@
public void addSourceConnection(TreeNodeConnection connection) {
super.addSourceConnection(connection);
if (getData() instanceof Segment) {
- TreeNodeModel targetNode = connection.getTargetNode();
+ AbstractSmooksGraphicalModel targetNode = connection.getTargetNode();
if (targetNode != null && targetNode.getData() instanceof
EDIDataContainerModel) {
if (domainProvider != null) {
String segCode = ((EDIDataContainerModel) targetNode.getData()).getSegCode();
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/model/AbstractSmooksGraphicalModel.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/model/AbstractSmooksGraphicalModel.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/model/AbstractSmooksGraphicalModel.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -0,0 +1,266 @@
+/*******************************************************************************
+ * 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.gef.model;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.swt.graphics.Image;
+import org.jboss.tools.smooks.gef.tree.model.IConnectableNode;
+import org.jboss.tools.smooks.gef.tree.model.TreeNodeConnection;
+import org.jboss.tools.smooks.gef.tree.model.TreeNodeModel;
+
+/**
+ * @author Dart
+ *
+ */
+public class AbstractSmooksGraphicalModel implements IConnectableNode {
+
+ public static final String PRO_ADD_CHILD = "_pro_add_child";
+
+ public static final String PRO_REMOVE_CHILD = "_pro_remove_child";
+
+ public static final String PRO_ADD_SOURCE_CONNECTION =
"_pro_add_source_connected";
+
+ public static final String PRO_ADD_TARGET_CONNECTION =
"_pro_add_target_connected";
+
+ public static final String PRO_REMOVE_SOURCE_CONNECTION =
"_pro_remove_source_connected";
+
+ public static final String PRO_REMOVE_TARGET_CONNECTION =
"_pro_remove_target_connected";
+
+ public static final String PRO_TEXT_CHANGED = "_pro_text_changed";
+
+ public static final String PRO_FORCE_VISUAL_CHANGED =
"_pro_force_text_changed";
+
+ public static final String PRO_FORCE_CHIDLREN_CHANGED =
"_pro_force_children_changed";
+
+ public static final String PRO_FORCE_CONNECTION_CHANGED =
"_pro_force_connection_changed";
+
+ protected Object data = null;
+
+ private boolean linkable = true;
+
+ private AbstractSmooksGraphicalModel parent = null;
+
+ private HashMap<String, Object> userDataMap = new HashMap<String,
Object>();
+
+ protected PropertyChangeSupport support = new PropertyChangeSupport(this);
+
+ protected List<AbstractSmooksGraphicalModel> children = null;
+
+ private List<TreeNodeConnection> sourceConnections = new
ArrayList<TreeNodeConnection>();
+
+ private List<TreeNodeConnection> targetConnections = new
ArrayList<TreeNodeConnection>();
+
+ public AbstractSmooksGraphicalModel(Object data) {
+ setData(data);
+ }
+
+ public boolean hasChildren() {
+ return true;
+ }
+
+ public AbstractSmooksGraphicalModel getParent() {
+ return parent;
+ }
+
+ public void setParent(AbstractSmooksGraphicalModel parent) {
+ this.parent = parent;
+ }
+
+ //
+ // protected AbstractSmooksGraphicalModel createChildModel(Object model,
+ // ITreeContentProvider contentProvider,
+ // ILabelProvider labelProvider) {
+ // return new TreeNodeModel(model, contentProvider, labelProvider);
+ // }
+
+ public List<AbstractSmooksGraphicalModel> getChildren() {
+ if (children == null) {
+ children = new ArrayList<AbstractSmooksGraphicalModel>();
+ }
+ return children;
+ }
+
+ protected void disconnectAllConnections(AbstractSmooksGraphicalModel node) {
+ List<TreeNodeConnection> sourceConnections = node.getSourceConnections();
+ List<TreeNodeConnection> targetConnections = node.getTargetConnections();
+ List<TreeNodeConnection> tempSourceConnections = new
ArrayList<TreeNodeConnection>(sourceConnections);
+ List<TreeNodeConnection> tempTargetConnections = new
ArrayList<TreeNodeConnection>(targetConnections);
+
+ for (Iterator<?> iterator2 = tempTargetConnections.iterator();
iterator2.hasNext();) {
+ TreeNodeConnection treeNodeConnection = (TreeNodeConnection) iterator2.next();
+ treeNodeConnection.disconnectSource();
+ }
+
+ for (Iterator<?> iterator2 = tempSourceConnections.iterator();
iterator2.hasNext();) {
+ TreeNodeConnection treeNodeConnection = (TreeNodeConnection) iterator2.next();
+ treeNodeConnection.disconnectTarget();
+ }
+
+ tempSourceConnections.clear();
+ tempTargetConnections.clear();
+ tempSourceConnections = null;
+ tempTargetConnections = null;
+
+ List<AbstractSmooksGraphicalModel> children = node.getChildren();
+ for (Iterator<?> iterator = children.iterator(); iterator.hasNext();) {
+ TreeNodeModel treeNodeModel = (TreeNodeModel) iterator.next();
+ disconnectAllConnections(treeNodeModel);
+ }
+ }
+
+ protected boolean graphicalChildExist(Object model, Object[] models) {
+ for (int i = 0; i < models.length; i++) {
+ if (model == models[i]) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ protected boolean childExsit(Object model) {
+ if (children != null) {
+ for (Iterator<?> iterator = children.iterator(); iterator.hasNext();) {
+ TreeNodeModel node = (TreeNodeModel) iterator.next();
+ if (node.getData() == model) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public void addPropertyChangeListener(PropertyChangeListener listener) {
+ support.addPropertyChangeListener(listener);
+ }
+
+ public void removePropertyChangeListener(PropertyChangeListener listener) {
+ support.removePropertyChangeListener(listener);
+ }
+
+ public void addSourceConnection(TreeNodeConnection connection) {
+ if (this.sourceConnections.indexOf(connection) == -1) {
+ this.sourceConnections.add(connection);
+ support.firePropertyChange(PRO_ADD_SOURCE_CONNECTION, null, connection);
+ }
+ }
+
+ public void removeSourceConnection(TreeNodeConnection connection) {
+ if (this.sourceConnections.indexOf(connection) != -1) {
+ this.sourceConnections.remove(connection);
+ support.firePropertyChange(PRO_REMOVE_SOURCE_CONNECTION, connection, null);
+ }
+ }
+
+ public void addTargetConnection(TreeNodeConnection connection) {
+ if (this.targetConnections.indexOf(connection) == -1) {
+ this.targetConnections.add(connection);
+ support.firePropertyChange(PRO_ADD_TARGET_CONNECTION, null, connection);
+ }
+ }
+
+ public void removeTargetConnection(TreeNodeConnection connection) {
+ if (this.targetConnections.indexOf(connection) != -1) {
+ this.targetConnections.remove(connection);
+ support.firePropertyChange(PRO_REMOVE_TARGET_CONNECTION, connection, null);
+ }
+ }
+
+ public void addChild(AbstractSmooksGraphicalModel node) {
+ if (getChildren().indexOf(node) == -1) {
+ getChildren().add(node);
+ node.setParent(this);
+ support.firePropertyChange(PRO_ADD_CHILD, null, node);
+ }
+ }
+
+ public void removeChild(AbstractSmooksGraphicalModel node) {
+ if (getChildren().indexOf(node) != -1) {
+ getChildren().remove(node);
+ node.setParent(null);
+ support.firePropertyChange(PRO_REMOVE_CHILD, node, null);
+ }
+ }
+
+ public Object getData() {
+ return data;
+ }
+
+ public void setData(Object data) {
+ this.data = data;
+ }
+
+ public void setUserData(String key, Object data) {
+ userDataMap.put(key, data);
+ }
+
+ public Object getUserData(String key) {
+ return userDataMap.get(key);
+ }
+
+ public String getText() {
+ // if (data != null && labelProvider != null) {
+ // return labelProvider.getText(data);
+ // }
+ return null;
+ }
+
+ public Image getImage() {
+ // if (data != null && labelProvider != null) {
+ // return labelProvider.getImage(data);
+ // }
+ return null;
+ }
+
+ public boolean isLinkable() {
+ return linkable;
+ }
+
+ public void setLinkable(boolean linkable) {
+ this.linkable = linkable;
+ }
+
+ public boolean canLinkWithSource(Object model) {
+ return true;
+ }
+
+ public boolean canLinkWithTarget(Object model) {
+ return true;
+ }
+
+ public void setText(String text) {
+ }
+
+ public List<TreeNodeConnection> getSourceConnections() {
+ return sourceConnections;
+ }
+
+ public List<TreeNodeConnection> getTargetConnections() {
+ return targetConnections;
+ }
+
+ public void fireChildrenChanged() {
+ support.firePropertyChange(PRO_FORCE_CHIDLREN_CHANGED, new Object(), null);
+ }
+
+ public void fireConnectionChanged() {
+ support.firePropertyChange(PRO_FORCE_CONNECTION_CHANGED, new Object(), null);
+ }
+
+ public void fireVisualChanged() {
+ support.firePropertyChange(PRO_FORCE_VISUAL_CHANGED, new Object(), null);
+ }
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/model/AbstractSmooksGraphicalModel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
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-23
01:16:12 UTC (rev 16745)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/editparts/TreeContainerEditPart.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -10,14 +10,18 @@
import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.DefaultEditDomain;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.ui.IEditorPart;
+import org.jboss.tools.smooks.editor.ISmooksModelProvider;
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;
import org.jboss.tools.smooks.gef.tree.figures.TreeFigureExpansionEvent;
import org.jboss.tools.smooks.gef.tree.model.TreeContainerModel;
import org.jboss.tools.smooks.gef.tree.model.TreeNodeModel;
+import org.jboss.tools.smooks.model.graphics.ext.SmooksGraphicsExtType;
/**
* @author DartPeng
@@ -90,6 +94,15 @@
super.propertyChange(evt);
if (IMoveableModel.PRO_BOUNDS_CHANGED.equals(evt.getPropertyName())) {
refresh();
+ DefaultEditDomain domain = (DefaultEditDomain) getViewer().getEditDomain();
+ IEditorPart editor = domain.getEditorPart();
+ ISmooksModelProvider modelProvider = (ISmooksModelProvider)
editor.getAdapter(ISmooksModelProvider.class);
+
+ if(modelProvider != null && getModel() instanceof IMoveableModel){
+ SmooksGraphicsExtType graph = modelProvider.getSmooksGraphicsExt();
+ Rectangle rect = ((IMoveableModel)getModel()).getBounds();
+ recordBounds(graph,rect);
+ }
}
}
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-23
01:16:12 UTC (rev 16745)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/editparts/TreeNodeConnectionEditPart.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -15,11 +15,11 @@
import org.eclipse.draw2d.geometry.PointList;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.editparts.AbstractConnectionEditPart;
+import org.jboss.tools.smooks.gef.model.AbstractSmooksGraphicalModel;
import org.jboss.tools.smooks.gef.tree.editpolicy.TreeNodeConnectionEditPolicy;
import org.jboss.tools.smooks.gef.tree.editpolicy.TreeNodeEndpointEditPolicy;
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;
/**
* @author DartPeng
@@ -40,8 +40,8 @@
public IFigure createFigure() {
TreeNodeConnection model = (TreeNodeConnection) getModel();
- TreeNodeModel sourceModel = model.getSourceNode();
- TreeNodeModel targetModel = model.getTargetNode();
+ AbstractSmooksGraphicalModel sourceModel = model.getSourceNode();
+ AbstractSmooksGraphicalModel targetModel = model.getTargetNode();
PolylineConnection connection1 = new PolylineConnection() {
@Override
public void paintFigure(Graphics graphics) {
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeContainerModel.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeContainerModel.java 2009-07-23
01:16:12 UTC (rev 16745)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeContainerModel.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -1,7 +1,5 @@
package org.jboss.tools.smooks.gef.tree.model;
-import java.util.List;
-
import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
@@ -30,10 +28,6 @@
this.sourceLinkNode = sourceLinkNode;
}
- public List<TreeNodeModel> getChildren() {
- return super.getChildren();
- }
-
public Point getLocation() {
return location;
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeNodeConnection.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeNodeConnection.java 2009-07-23
01:16:12 UTC (rev 16745)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeNodeConnection.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -4,67 +4,68 @@
package org.jboss.tools.smooks.gef.tree.model;
import org.eclipse.core.runtime.Assert;
+import org.jboss.tools.smooks.gef.model.AbstractSmooksGraphicalModel;
/**
* @author DartPeng
- *
+ *
*/
public class TreeNodeConnection {
-
- private TreeNodeModel sourceNode;
-
- private TreeNodeModel targetNode;
-
- public TreeNodeConnection(){
-
+
+ private AbstractSmooksGraphicalModel sourceNode;
+
+ private AbstractSmooksGraphicalModel targetNode;
+
+ public TreeNodeConnection() {
+
}
- public TreeNodeConnection(TreeNodeModel sourceNode,TreeNodeModel targetNode){
+ public TreeNodeConnection(AbstractSmooksGraphicalModel sourceNode,
AbstractSmooksGraphicalModel targetNode) {
this.sourceNode = sourceNode;
this.targetNode = targetNode;
Assert.isNotNull(sourceNode);
Assert.isNotNull(targetNode);
}
-
- public void connect(){
+
+ public void connect() {
connectSource();
connectTarget();
}
-
- public void disconnect(){
+
+ public void disconnect() {
disconnectSource();
disconnectTarget();
}
-
- public void connectSource(){
+
+ public void connectSource() {
sourceNode.addSourceConnection(this);
}
-
- public void connectTarget(){
+
+ public void connectTarget() {
targetNode.addTargetConnection(this);
}
-
- public void disconnectSource(){
+
+ public void disconnectSource() {
sourceNode.removeSourceConnection(this);
}
-
- public void disconnectTarget(){
+
+ public void disconnectTarget() {
targetNode.removeTargetConnection(this);
}
-
- public TreeNodeModel getSourceNode() {
+
+ public AbstractSmooksGraphicalModel getSourceNode() {
return sourceNode;
}
- public void setSourceNode(TreeNodeModel sourceNode) {
+ public void setSourceNode(AbstractSmooksGraphicalModel sourceNode) {
this.sourceNode = sourceNode;
}
- public TreeNodeModel getTargetNode() {
+ public AbstractSmooksGraphicalModel getTargetNode() {
return targetNode;
}
- public void setTargetNode(TreeNodeModel targetNode) {
+ public void setTargetNode(AbstractSmooksGraphicalModel targetNode) {
this.targetNode = targetNode;
}
}
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-23
01:16:12 UTC (rev 16745)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/gef/tree/model/TreeNodeModel.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -1,60 +1,23 @@
package org.jboss.tools.smooks.gef.tree.model;
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.swt.graphics.Image;
+import org.jboss.tools.smooks.gef.model.AbstractSmooksGraphicalModel;
-public class TreeNodeModel implements IConnectableNode {
+public class TreeNodeModel extends AbstractSmooksGraphicalModel {
protected ITreeContentProvider contentProvider;
protected ILabelProvider labelProvider;
- public static final String PRO_ADD_CHILD = "_pro_add_child";
-
- public static final String PRO_REMOVE_CHILD = "_pro_remove_child";
-
- public static final String PRO_ADD_SOURCE_CONNECTION =
"_pro_add_source_connected";
-
- public static final String PRO_ADD_TARGET_CONNECTION =
"_pro_add_target_connected";
-
- public static final String PRO_REMOVE_SOURCE_CONNECTION =
"_pro_remove_source_connected";
-
- public static final String PRO_REMOVE_TARGET_CONNECTION =
"_pro_remove_target_connected";
-
- public static final String PRO_TEXT_CHANGED = "_pro_text_changed";
-
- public static final String PRO_FORCE_VISUAL_CHANGED =
"_pro_force_text_changed";
-
- public static final String PRO_FORCE_CHIDLREN_CHANGED =
"_pro_force_children_changed";
-
- public static final String PRO_FORCE_CONNECTION_CHANGED =
"_pro_force_connection_changed";
-
- protected Object data = null;
-
- private boolean linkable = true;
-
- private TreeNodeModel parent = null;
-
- private HashMap<String, Object> userDataMap = new HashMap<String,
Object>();
-
- protected PropertyChangeSupport support = new PropertyChangeSupport(this);
-
- protected List<TreeNodeModel> children = null;
-
- private List<TreeNodeConnection> sourceConnections = new
ArrayList<TreeNodeConnection>();
-
- private List<TreeNodeConnection> targetConnections = new
ArrayList<TreeNodeConnection>();
-
public TreeNodeModel(Object data, ITreeContentProvider contentProvider, ILabelProvider
labelProvider) {
+ super(data);
setContentProvider(contentProvider);
setLabelProvider(labelProvider);
setData(data);
@@ -66,15 +29,7 @@
}
return true;
}
-
- public TreeNodeModel getParent() {
- return parent;
- }
-
- public void setParent(TreeNodeModel parent) {
- this.parent = parent;
- }
-
+
public ITreeContentProvider getContentProvider() {
return contentProvider;
}
@@ -96,12 +51,12 @@
return new TreeNodeModel(model, contentProvider, labelProvider);
}
- public List<TreeNodeModel> getChildren() {
+ public List<AbstractSmooksGraphicalModel> getChildren() {
if (children == null) {
if (this.contentProvider != null && data != null) {
Object[] models = contentProvider.getChildren(data);
if (models != null) {
- children = new ArrayList<TreeNodeModel>();
+ children = new ArrayList<AbstractSmooksGraphicalModel>();
for (int i = 0; i < models.length; i++) {
Object model = models[i];
TreeNodeModel n = createChildModel(model, contentProvider, labelProvider);
@@ -124,9 +79,9 @@
n.setParent(this);
}
}
- List<TreeNodeModel> temp = new ArrayList<TreeNodeModel>(children);
+ List<AbstractSmooksGraphicalModel> temp = new
ArrayList<AbstractSmooksGraphicalModel>(children);
for (Iterator<?> iterator = temp.iterator(); iterator.hasNext();) {
- TreeNodeModel node = (TreeNodeModel) iterator.next();
+ AbstractSmooksGraphicalModel node = (AbstractSmooksGraphicalModel)
iterator.next();
Object data = node.getData();
if (!graphicalChildExist(data, models)) {
disconnectAllConnections(node);
@@ -142,123 +97,7 @@
return children;
}
- protected void disconnectAllConnections(TreeNodeModel node) {
- List<TreeNodeConnection> sourceConnections = node.getSourceConnections();
- List<TreeNodeConnection> targetConnections = node.getTargetConnections();
- List<TreeNodeConnection> tempSourceConnections = new
ArrayList<TreeNodeConnection>(sourceConnections);
- List<TreeNodeConnection> tempTargetConnections = new
ArrayList<TreeNodeConnection>(targetConnections);
- for (Iterator<?> iterator2 = tempTargetConnections.iterator();
iterator2.hasNext();) {
- TreeNodeConnection treeNodeConnection = (TreeNodeConnection) iterator2.next();
- treeNodeConnection.disconnectSource();
- }
-
- for (Iterator<?> iterator2 = tempSourceConnections.iterator();
iterator2.hasNext();) {
- TreeNodeConnection treeNodeConnection = (TreeNodeConnection) iterator2.next();
- treeNodeConnection.disconnectTarget();
- }
-
- tempSourceConnections.clear();
- tempTargetConnections.clear();
- tempSourceConnections = null;
- tempTargetConnections = null;
-
- List<TreeNodeModel> children = node.getChildren();
- for (Iterator<?> iterator = children.iterator(); iterator.hasNext();) {
- TreeNodeModel treeNodeModel = (TreeNodeModel) iterator.next();
- disconnectAllConnections(treeNodeModel);
- }
- }
-
- protected boolean graphicalChildExist(Object model, Object[] models) {
- for (int i = 0; i < models.length; i++) {
- if (model == models[i]) {
- return true;
- }
- }
- return false;
- }
-
- protected boolean childExsit(Object model) {
- if (children != null) {
- for (Iterator<?> iterator = children.iterator(); iterator.hasNext();) {
- TreeNodeModel node = (TreeNodeModel) iterator.next();
- if (node.getData() == model) {
- return true;
- }
- }
- }
- return false;
- }
-
- public void addPropertyChangeListener(PropertyChangeListener listener) {
- support.addPropertyChangeListener(listener);
- }
-
- public void removePropertyChangeListener(PropertyChangeListener listener) {
- support.removePropertyChangeListener(listener);
- }
-
- public void addSourceConnection(TreeNodeConnection connection) {
- if (this.sourceConnections.indexOf(connection) == -1) {
- this.sourceConnections.add(connection);
- support.firePropertyChange(PRO_ADD_SOURCE_CONNECTION, null, connection);
- }
- }
-
- public void removeSourceConnection(TreeNodeConnection connection) {
- if (this.sourceConnections.indexOf(connection) != -1) {
- this.sourceConnections.remove(connection);
- support.firePropertyChange(PRO_REMOVE_SOURCE_CONNECTION, connection, null);
- }
- }
-
- public void addTargetConnection(TreeNodeConnection connection) {
- if (this.targetConnections.indexOf(connection) == -1) {
- this.targetConnections.add(connection);
- support.firePropertyChange(PRO_ADD_TARGET_CONNECTION, null, connection);
- }
- }
-
- public void removeTargetConnection(TreeNodeConnection connection) {
- if (this.targetConnections.indexOf(connection) != -1) {
- this.targetConnections.remove(connection);
- support.firePropertyChange(PRO_REMOVE_TARGET_CONNECTION, connection, null);
- }
- }
-
- public void addChild(TreeNodeModel node) {
- if (getChildren().indexOf(node) == -1) {
- getChildren().add(node);
- node.setParent(this);
- support.firePropertyChange(PRO_ADD_CHILD, null, node);
- }
- }
-
- public void removeChild(TreeNodeModel node) {
- if (getChildren().indexOf(node) != -1) {
- getChildren().remove(node);
- node.setParent(null);
- support.firePropertyChange(PRO_REMOVE_CHILD, node, null);
- }
- }
-
- public Object getData() {
- return data;
- }
-
- public void setData(Object data) {
- this.data = data;
- }
-
- public void setUserData(String key, Object data) {
- userDataMap.put(key, data);
- }
-
- public Object getUserData(String key) {
- return userDataMap.get(key);
- }
-
public String getText() {
if (data != null && labelProvider != null) {
return labelProvider.getText(data);
@@ -273,14 +112,14 @@
return null;
}
- public boolean isLinkable() {
- return linkable;
- }
+// public boolean isLinkable() {
+// return linkable;
+// }
+//
+// public void setLinkable(boolean linkable) {
+// this.linkable = linkable;
+// }
- public void setLinkable(boolean linkable) {
- this.linkable = linkable;
- }
-
public boolean canLinkWithSource(Object model) {
return true;
}
@@ -296,25 +135,4 @@
// support.firePropertyChange(PRO_TEXT_CHANGED, oldtext, this.text);
// }
}
-
- public List<TreeNodeConnection> getSourceConnections() {
- return sourceConnections;
- }
-
- public List<TreeNodeConnection> getTargetConnections() {
- return targetConnections;
- }
-
- public void fireChildrenChanged(){
- support.firePropertyChange(PRO_FORCE_CHIDLREN_CHANGED, new Object(), null);
- }
-
- public void fireConnectionChanged(){
- support.firePropertyChange(PRO_FORCE_CONNECTION_CHANGED, new Object(), null);
- }
-
- public void fireVisualChanged(){
- support.firePropertyChange(PRO_FORCE_VISUAL_CHANGED, new Object(), null);
- }
-
}
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/SmooksEditFactory.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/SmooksEditFactory.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/SmooksEditFactory.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * 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.graphical.editors;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartFactory;
+import org.jboss.tools.smooks.gef.common.RootModel;
+import org.jboss.tools.smooks.gef.common.SmooksGEFEditFactory;
+import org.jboss.tools.smooks.gef.tree.editparts.RootEditPart;
+import org.jboss.tools.smooks.gef.tree.editparts.TreeContainerEditPart;
+import org.jboss.tools.smooks.gef.tree.editparts.TreeNodeConnectionEditPart;
+import org.jboss.tools.smooks.gef.tree.editparts.TreeNodeEditPart;
+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.graphical.editors.editparts.InputDataContainerEditPart;
+import org.jboss.tools.smooks.graphical.editors.editparts.InputDataTreeNodeEditPart;
+import org.jboss.tools.smooks.graphical.editors.model.InputDataContianerModel;
+import org.jboss.tools.smooks.graphical.editors.model.InputDataTreeNodeModel;
+
+/**
+ * @author Dart
+ *
+ */
+public class SmooksEditFactory extends SmooksGEFEditFactory implements EditPartFactory{
+
+ public SmooksEditFactory() {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ public EditPart createEditPart(EditPart context, Object model) {
+ EditPart editPart = null;
+ if(model instanceof RootModel){
+ editPart = new RootEditPart();
+ }
+ if(model.getClass() == TreeNodeModel.class){
+ editPart = new TreeNodeEditPart();
+ }if(model.getClass() == TreeContainerModel.class){
+ editPart = new TreeContainerEditPart();
+ }
+ if(model.getClass() == InputDataTreeNodeModel.class){
+ editPart = new InputDataTreeNodeEditPart();
+ }if(model.getClass() == InputDataContianerModel.class){
+ editPart = new InputDataContainerEditPart();
+ }
+ if(model.getClass() == TreeNodeConnection.class){
+ editPart = new TreeNodeConnectionEditPart();
+ }
+ if(editPart != null){
+ editPart.setModel(model);
+ }
+ return editPart;
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/SmooksEditFactory.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/SmooksGraphicalEditorPart.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/SmooksGraphicalEditorPart.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/SmooksGraphicalEditorPart.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -0,0 +1,136 @@
+/*******************************************************************************
+ * 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.graphical.editors;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.gef.DefaultEditDomain;
+import org.eclipse.gef.commands.CommandStackEvent;
+import org.eclipse.gef.commands.CommandStackEventListener;
+import org.eclipse.gef.editparts.FreeformGraphicalRootEditPart;
+import org.eclipse.gef.ui.parts.GraphicalEditor;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.jboss.tools.smooks.configuration.editors.SelectoreSelectionDialog;
+import org.jboss.tools.smooks.configuration.editors.SmooksMultiFormEditor;
+import org.jboss.tools.smooks.configuration.editors.javabean.JavaBeanList;
+import org.jboss.tools.smooks.configuration.editors.javabean.JavaBeanModel;
+import org.jboss.tools.smooks.configuration.editors.javabean.JavabeanContentProvider;
+import org.jboss.tools.smooks.configuration.editors.javabean.JavabeanlabelProvider;
+import org.jboss.tools.smooks.configuration.editors.xml.TagList;
+import org.jboss.tools.smooks.configuration.editors.xml.TagObject;
+import
org.jboss.tools.smooks.configuration.editors.xml.XMLStructuredDataContentProvider;
+import org.jboss.tools.smooks.configuration.editors.xml.XMLStructuredDataLabelProvider;
+import org.jboss.tools.smooks.editor.ISmooksModelProvider;
+import org.jboss.tools.smooks.gef.common.RootModel;
+import org.jboss.tools.smooks.gef.tree.model.TreeContainerModel;
+import org.jboss.tools.smooks.graphical.editors.model.InputDataContianerModel;
+import org.jboss.tools.smooks.model.smooks.DocumentRoot;
+
+/**
+ * @author Dart
+ *
+ */
+public class SmooksGraphicalEditorPart extends GraphicalEditor {
+
+ private DefaultEditDomain editDomain = null;
+
+ private SmooksMultiFormEditor formEditor = null;
+
+ public SmooksGraphicalEditorPart(SmooksMultiFormEditor formEditor) {
+ super();
+ this.editDomain = new DefaultEditDomain(this);
+ this.editDomain.getCommandStack().addCommandStackEventListener(new
CommandStackEventListener() {
+
+ public void stackChanged(CommandStackEvent event) {
+ firePropertyChange(PROP_DIRTY);
+ }
+ });
+ this.formEditor = formEditor;
+ this.setEditDomain(editDomain);
+ }
+
+ public DefaultEditDomain getEditDomain() {
+ return editDomain;
+ }
+
+ @Override
+ protected void configureGraphicalViewer() {
+ super.configureGraphicalViewer();
+ getGraphicalViewer().setEditDomain(editDomain);
+ getGraphicalViewer().setEditPartFactory(new SmooksEditFactory());
+
+ getGraphicalViewer().setRootEditPart(new FreeformGraphicalRootEditPart());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.gef.ui.parts.GraphicalEditor#initializeGraphicalViewer()
+ */
+ @Override
+ protected void initializeGraphicalViewer() {
+ Object obj = formEditor.getSmooksModel();
+ if (obj instanceof DocumentRoot) {
+ List<Object> inputDatas =
SelectoreSelectionDialog.generateInputData(formEditor.getSmooksGraphicsExt(),
+ ((DocumentRoot) obj).getSmooksResourceList());
+ RootModel root = new RootModel();
+ for (Iterator<?> iterator = inputDatas.iterator(); iterator.hasNext();) {
+ Object object = (Object) iterator.next();
+ ITreeContentProvider contentProvider = new XMLStructuredDataContentProvider();
+ ILabelProvider labelProvider = new XMLStructuredDataLabelProvider();
+ Object containerModel = null;
+
+ if (object instanceof JavaBeanModel) {
+ contentProvider = new JavabeanContentProvider();
+ labelProvider = new JavabeanlabelProvider();
+ containerModel = new JavaBeanList();
+ ((JavaBeanList) containerModel).addJavaBean((JavaBeanModel) object);
+ }
+ if (object instanceof TagObject) {
+ containerModel = new TagList();
+ ((TagList) containerModel).addRootTag((TagObject) object);
+ }
+ if (containerModel != null) {
+ TreeContainerModel container = new InputDataContianerModel(containerModel,
contentProvider,
+ labelProvider);
+ root.addTreeNode(container);
+ }
+ }
+ getGraphicalViewer().setContents(root);
+ }
+ }
+
+
+
+ @Override
+ public Object getAdapter(Class type) {
+ if(type == ISmooksModelProvider.class){
+ return this.formEditor;
+ }
+ return super.getAdapter(type);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.
+ * IProgressMonitor)
+ */
+ @Override
+ public void doSave(IProgressMonitor monitor) {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/SmooksGraphicalEditorPart.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/AbstractSmooksElementEditPart.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/AbstractSmooksElementEditPart.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/AbstractSmooksElementEditPart.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * 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.graphical.editors.editparts;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.jboss.tools.smooks.gef.model.AbstractSmooksGraphicalModel;
+
+/**
+ * @author Dart
+ *
+ */
+public class AbstractSmooksElementEditPart extends AbstractGraphicalEditPart implements
PropertyChangeListener {
+
+ @Override
+ public void activate() {
+ super.activate();
+ Object model = getModel();
+ if (model instanceof AbstractSmooksGraphicalModel) {
+ ((AbstractSmooksGraphicalModel) model).addPropertyChangeListener(this);
+ }
+ }
+
+ @Override
+ public void deactivate() {
+ Object model = getModel();
+ if (model instanceof AbstractSmooksGraphicalModel) {
+ ((AbstractSmooksGraphicalModel) model).removePropertyChangeListener(this);
+ }
+ super.deactivate();
+ }
+
+
+
+ @Override
+ protected List<?> getModelChildren() {
+ Object model = getModel();
+ if (model instanceof AbstractSmooksGraphicalModel) {
+ return ((AbstractSmooksGraphicalModel)model).getChildren();
+ }
+ return super.getModelChildren();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
+ */
+ @Override
+ protected IFigure createFigure() {
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies()
+ */
+ @Override
+ protected void createEditPolicies() {
+
+ }
+
+ public void propertyChange(PropertyChangeEvent evt) {
+ String proName = evt.getPropertyName();
+ if (AbstractSmooksGraphicalModel.PRO_FORCE_VISUAL_CHANGED.equals(proName)) {
+ refreshVisuals();
+ }
+ if (AbstractSmooksGraphicalModel.PRO_ADD_CHILD.equals(proName)
+ || AbstractSmooksGraphicalModel.PRO_REMOVE_CHILD.equals(proName)
+ || AbstractSmooksGraphicalModel.PRO_FORCE_CHIDLREN_CHANGED.equals(proName)) {
+ refreshChildren();
+
+ }
+ if (AbstractSmooksGraphicalModel.PRO_ADD_SOURCE_CONNECTION.equals(proName)
+ || AbstractSmooksGraphicalModel.PRO_REMOVE_SOURCE_CONNECTION.equals(proName)) {
+ refreshSourceConnections();
+ }
+ if (AbstractSmooksGraphicalModel.PRO_ADD_TARGET_CONNECTION.equals(proName)
+ || AbstractSmooksGraphicalModel.PRO_REMOVE_TARGET_CONNECTION.equals(proName)) {
+ refreshTargetConnections();
+ }
+
+ if (AbstractSmooksGraphicalModel.PRO_FORCE_CONNECTION_CHANGED.equals(proName)) {
+ refreshSourceConnections();
+ refreshTargetConnections();
+ }
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/AbstractSmooksElementEditPart.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/InputDataContainerEditPart.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/InputDataContainerEditPart.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/InputDataContainerEditPart.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * 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.graphical.editors.editparts;
+
+import java.beans.PropertyChangeEvent;
+
+import org.jboss.tools.smooks.configuration.editors.IXMLStructuredObject;
+import org.jboss.tools.smooks.gef.tree.editparts.TreeContainerEditPart;
+import org.jboss.tools.smooks.gef.tree.model.TreeNodeModel;
+
+/**
+ * @author Dart
+ *
+ */
+public class InputDataContainerEditPart extends TreeContainerEditPart {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ super.propertyChange(evt);
+ }
+
+ @Override
+ protected String generateFigureID() {
+ TreeNodeModel model = (TreeNodeModel)this.getModel();
+ Object data = model.getData();
+ if(data instanceof IXMLStructuredObject){
+ return ((IXMLStructuredObject)data).getID().toString();
+ }
+ return null;
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/InputDataContainerEditPart.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/InputDataTreeNodeEditPart.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/InputDataTreeNodeEditPart.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/InputDataTreeNodeEditPart.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * 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.graphical.editors.editparts;
+
+import org.jboss.tools.smooks.gef.tree.editparts.TreeNodeEditPart;
+
+/**
+ * @author Dart
+ *
+ */
+public class InputDataTreeNodeEditPart extends TreeNodeEditPart {
+
+ @Override
+ protected boolean isDragLink() {
+ return true;
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/InputDataTreeNodeEditPart.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/SmooksElementContainerEditPart.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/SmooksElementContainerEditPart.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/SmooksElementContainerEditPart.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -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.graphical.editors.editparts;
+
+/**
+ * @author Dart
+ *
+ */
+public class SmooksElementContainerEditPart extends SmooksElementEditPart {
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/SmooksElementContainerEditPart.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/SmooksElementEditPart.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/SmooksElementEditPart.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/SmooksElementEditPart.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -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.graphical.editors.editparts;
+
+/**
+ * @author Dart
+ *
+ */
+public class SmooksElementEditPart extends AbstractSmooksElementEditPart {
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/editparts/SmooksElementEditPart.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/InputDataContianerModel.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/InputDataContianerModel.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/InputDataContianerModel.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * 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.graphical.editors.model;
+
+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;
+
+/**
+ * @author Dart
+ *
+ */
+public class InputDataContianerModel extends TreeContainerModel {
+
+ public InputDataContianerModel(Object data, ITreeContentProvider contentProvider,
ILabelProvider labelProvider) {
+ super(data, contentProvider, labelProvider);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected TreeNodeModel createChildModel(Object model, ITreeContentProvider
contentProvider,
+ ILabelProvider labelProvider) {
+ return new InputDataTreeNodeModel(model, contentProvider, labelProvider);
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/InputDataContianerModel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/InputDataTreeNodeModel.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/InputDataTreeNodeModel.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/InputDataTreeNodeModel.java 2009-07-23
11:19:10 UTC (rev 16746)
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * 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.graphical.editors.model;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.jboss.tools.smooks.gef.tree.model.TreeNodeModel;
+
+/**
+ * @author Dart
+ *
+ */
+public class InputDataTreeNodeModel extends TreeNodeModel {
+
+ public InputDataTreeNodeModel(Object data, ITreeContentProvider contentProvider,
ILabelProvider labelProvider) {
+ super(data, contentProvider, labelProvider);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected TreeNodeModel createChildModel(Object model, ITreeContentProvider
contentProvider,
+ ILabelProvider labelProvider) {
+ return new InputDataTreeNodeModel(model, contentProvider, labelProvider);
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/model/InputDataTreeNodeModel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain