Author: koen.aers(a)jboss.com
Date: 2009-02-13 15:28:00 -0500 (Fri, 13 Feb 2009)
New Revision: 13622
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/icons/16/node_elements_multiple.gif
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/icons/16/transitions_multiple.gif
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSelectionSynchronizer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlGraphicalEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlGraphicalEditPartFactory.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlTreeEditPartFactory.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessGraphicalEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeGraphicalEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeListTreeEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessTreeRootEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/SequenceFlowGraphicalEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/util/SharedImages.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/view/
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/view/DetailsPage.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/view/DetailsView.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/view/IDetailsPage.java
Removed:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlEditPartFactory.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/SequenceFlowEditPart.java
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlEditor.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/TypeMapper.java
Log:
implement details view
Added: trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/icons/16/node_elements_multiple.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/icons/16/node_elements_multiple.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/icons/16/transitions_multiple.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/icons/16/transitions_multiple.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml
===================================================================
--- trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml 2009-02-13 20:27:37 UTC (rev
13621)
+++ trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml 2009-02-13 20:28:00 UTC (rev
13622)
@@ -278,6 +278,16 @@
<input type="org.jboss.tools.flow.jpdl4.model.Process"/>
</propertySection>
</propertySections>
+ </extension>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ class="org.jboss.tools.flow.jpdl4.view.DetailsView"
+ icon="icons/process.gif"
+ id="org.jboss.tools.flow.jpdl4.details"
+ name="Details"
+ restorable="true">
+ </view>
</extension>
</plugin>
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlEditor.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlEditor.java 2009-02-13
20:27:37 UTC (rev 13621)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlEditor.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -4,26 +4,35 @@
import java.io.InputStream;
import java.io.OutputStream;
+import org.eclipse.gef.DefaultEditDomain;
import org.eclipse.gef.commands.CommandStack;
import org.eclipse.gef.palette.PaletteRoot;
+import org.eclipse.gef.ui.parts.SelectionSynchronizer;
+import org.eclipse.gef.ui.parts.TreeViewer;
import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
import org.jboss.tools.flow.common.editor.GenericModelEditor;
import org.jboss.tools.flow.common.registry.ElementRegistry;
import org.jboss.tools.flow.common.wrapper.Wrapper;
-import org.jboss.tools.flow.jpdl4.editpart.JpdlEditPartFactory;
+import org.jboss.tools.flow.jpdl4.editpart.JpdlGraphicalEditPartFactory;
+import org.jboss.tools.flow.jpdl4.editpart.JpdlTreeEditPartFactory;
import org.jboss.tools.flow.jpdl4.properties.JpdlPropertySheetPage;
+import org.jboss.tools.flow.jpdl4.view.DetailsPage;
+import org.jboss.tools.flow.jpdl4.view.IDetailsPage;
public class JpdlEditor extends GenericModelEditor implements
ITabbedPropertySheetPageContributor {
public static String ID = "org.jboss.tools.flow.jpdl4.editor";
+ protected SelectionSynchronizer selectionSynchronizer;
+ private DetailsPage detailsPage;
+
protected PaletteRoot createPalette() {
return new JpdlPaletteFactory().createPalette();
}
protected org.eclipse.gef.EditPartFactory createEditPartFactory() {
- return new JpdlEditPartFactory();
+ return new JpdlGraphicalEditPartFactory();
}
protected Object createModel() {
@@ -47,6 +56,14 @@
setModel(empty ? createModel() : new JpdlDeserializer().deserialize(is));
}
+ public SelectionSynchronizer getSelectionSynchronizer() {
+ if (selectionSynchronizer == null) {
+ selectionSynchronizer = new JpdlSelectionSynchronizer();
+ selectionSynchronizer.addViewer(getGraphicalViewer());
+ }
+ return selectionSynchronizer;
+ }
+
public String getContributorId() {
return getSite().getId();
}
@@ -55,10 +72,32 @@
return super.getCommandStack();
}
+ public DefaultEditDomain getEditDomain() {
+ return super.getEditDomain();
+ }
+
+ protected DetailsPage getDetailsPage() {
+ if (detailsPage == null) {
+ initDetailsPage();
+ }
+ return detailsPage;
+ }
+
+ protected void initDetailsPage() {
+ TreeViewer treeViewer = new TreeViewer();
+ treeViewer.setEditPartFactory(new JpdlTreeEditPartFactory());
+ getEditDomain().addViewer(treeViewer);
+ getSelectionSynchronizer().addViewer(treeViewer);
+ detailsPage = new DetailsPage(treeViewer) ;
+ getSite().getSelectionProvider().addSelectionChangedListener(detailsPage);
+ }
+
@SuppressWarnings("unchecked")
public Object getAdapter(Class adapter) {
if (adapter == IPropertySheetPage.class)
return new JpdlPropertySheetPage(this, getCommandStack());
+ else if (adapter == IDetailsPage.class)
+ return getDetailsPage();
return super.getAdapter(adapter);
}
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSelectionSynchronizer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSelectionSynchronizer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSelectionSynchronizer.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -0,0 +1,29 @@
+package org.jboss.tools.flow.jpdl4.editor;
+
+import java.util.Iterator;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.GraphicalViewer;
+import org.eclipse.gef.editparts.AbstractTreeEditPart;
+import org.eclipse.gef.ui.parts.SelectionSynchronizer;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+
+public class JpdlSelectionSynchronizer extends SelectionSynchronizer {
+
+ @SuppressWarnings("unchecked")
+ protected EditPart convert(EditPartViewer viewer, EditPart part) {
+ if (!(viewer instanceof GraphicalViewer)) return null;
+ if (!(part instanceof AbstractTreeEditPart)) return null;
+ Iterator<EditPart> iterator = viewer.getEditPartRegistry().values().iterator();
+ while (iterator.hasNext()) {
+ EditPart editPart = iterator.next();
+ Wrapper wrapper = (Wrapper)editPart.getModel();
+ if (part.getModel() == wrapper.getElement()) {
+ return editPart;
+ }
+ }
+ return null;
+ }
+
+}
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSerializer.java 2009-02-13
20:27:37 UTC (rev 13621)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSerializer.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -89,25 +89,27 @@
private void appendNodeList(StringBuffer buffer, ArrayList<Node> nodeList) {
- if (transformer == null) {
- Logger.logInfo("Skipping append nodes as transformer is not
initialized.");
- return;
- }
- DOMSource domSource = new DOMSource();
- for (Node node : nodeList) {
- StringWriter writer = new StringWriter();
- domSource.setNode(node);
- Result result = new StreamResult(writer);
- try {
+ if (transformer == null) {
+ Logger.logInfo("Skipping append nodes as transformer is not initialized.");
+ return;
+ }
+ DOMSource domSource = new DOMSource();
+ for (Node node : nodeList) {
+ StringWriter writer = new StringWriter();
+ domSource.setNode(node);
+ Result result = new StreamResult(writer);
+ try {
transformer.transform(domSource, result);
} catch (TransformerException e) {
Logger.logError("Exception while transforming xml.", e);
}
- buffer.append(writer.getBuffer());
- }
- }
-
- interface WrapperSerializer {
+ buffer.append(writer.getBuffer());
+ }
+ }
+
+
+
+ interface WrapperSerializer {
void appendOpening(StringBuffer buffer, Wrapper wrapper, int level);
}
@@ -356,12 +358,39 @@
}
- private void appendPadding(StringBuffer buffer, int level) {
- for (int i = 0; i < level; i++) {
- buffer.append(" ");
- }
- }
-
+ @SuppressWarnings("unchecked")
+ private void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
+ if (wrapper instanceof ContainerWrapper) {
+ ContainerWrapper containerWrapper = (ContainerWrapper)wrapper;
+ List<NodeWrapper> children = containerWrapper.getElements();
+ for (NodeWrapper nodeWrapper : children) {
+ appendToBuffer(buffer, nodeWrapper, level+1);
+ }
+ }
+ if (wrapper instanceof NodeWrapper) {
+ NodeWrapper nodeWrapper = (NodeWrapper)wrapper;
+ List<ConnectionWrapper> children = nodeWrapper.getOutgoingConnections();
+ for (ConnectionWrapper connectionWrapper : children) {
+ appendToBuffer(buffer, connectionWrapper, level+1);
+ }
+ }
+ Element element = (Element)wrapper.getElement();
+ ArrayList<Node> trailingNodeList =
(ArrayList<Node>)element.getMetaData("trailingNodes");
+ boolean appendTrailingNodes = trailingNodeList != null &&
!trailingNodeList.isEmpty();
+ if (appendTrailingNodes) {
+ appendNodeList(buffer, trailingNodeList);
+ } else if (buffer.length() > 0){
+ buffer.append("\n");
+ appendPadding(buffer, level);
+ }
+ }
+
+ private void appendPadding(StringBuffer buffer, int level) {
+ for (int i = 0; i < level; i++) {
+ buffer.append(" ");
+ }
+ }
+
private void appendClosing(StringBuffer buffer, Wrapper wrapper, int level) {
Element element = (Element)wrapper.getElement();
if (element instanceof SequenceFlow) {
@@ -401,33 +430,6 @@
}
}
- @SuppressWarnings("unchecked")
- private void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
- if (wrapper instanceof ContainerWrapper) {
- ContainerWrapper containerWrapper = (ContainerWrapper)wrapper;
- List<NodeWrapper> children = containerWrapper.getElements();
- for (NodeWrapper nodeWrapper : children) {
- appendToBuffer(buffer, nodeWrapper, level+1);
- }
- }
- if (wrapper instanceof NodeWrapper) {
- NodeWrapper nodeWrapper = (NodeWrapper)wrapper;
- List<ConnectionWrapper> children = nodeWrapper.getOutgoingConnections();
- for (ConnectionWrapper connectionWrapper : children) {
- appendToBuffer(buffer, connectionWrapper, level+1);
- }
- }
- Element element = (Element)wrapper.getElement();
- ArrayList<Node> trailingNodeList =
(ArrayList<Node>)element.getMetaData("trailingNodes");
- boolean appendTrailingNodes = trailingNodeList != null &&
!trailingNodeList.isEmpty();
- if (appendTrailingNodes) {
- appendNodeList(buffer, trailingNodeList);
- } else if (buffer.length() > 0){
- buffer.append("\n");
- appendPadding(buffer, level);
- }
- }
-
private boolean isEmpty(String str) {
return str == null || "".equals(str);
}
Deleted:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlEditPartFactory.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlEditPartFactory.java 2009-02-13
20:27:37 UTC (rev 13621)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlEditPartFactory.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -1,31 +0,0 @@
-package org.jboss.tools.flow.jpdl4.editpart;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.gef.EditPart;
-import org.jboss.tools.flow.common.editpart.EditPartFactory;
-import org.jboss.tools.flow.common.figure.IFigureFactory;
-import org.jboss.tools.flow.common.figure.NodeFigureFactory;
-import org.jboss.tools.flow.common.model.Element;
-
-public class JpdlEditPartFactory extends EditPartFactory {
-
- protected EditPart createNodeEditPart(Element element) {
- IConfigurationElement configurationElement =
- (IConfigurationElement)element.getMetaData("configurationElement");
- if (configurationElement == null) return null;
- ProcessNodeEditPart result = new ProcessNodeEditPart();
- IFigureFactory figureFactory = new NodeFigureFactory(configurationElement);
- result.setFigureFactory(figureFactory);
- return result;
- }
-
- protected EditPart createFlowEditPart(Element element) {
- return new ProcessEditPart();
- }
-
- protected EditPart createConnectionEditPart(Element element) {
- return new SequenceFlowEditPart();
- }
-
-
-}
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlGraphicalEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlGraphicalEditPart.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlGraphicalEditPart.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -0,0 +1,7 @@
+package org.jboss.tools.flow.jpdl4.editpart;
+
+import org.eclipse.gef.EditPart;
+
+public interface JpdlGraphicalEditPart extends EditPart {
+
+}
Copied:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlGraphicalEditPartFactory.java
(from rev 13503,
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlEditPartFactory.java)
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlGraphicalEditPartFactory.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlGraphicalEditPartFactory.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -0,0 +1,31 @@
+package org.jboss.tools.flow.jpdl4.editpart;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.gef.EditPart;
+import org.jboss.tools.flow.common.editpart.EditPartFactory;
+import org.jboss.tools.flow.common.figure.IFigureFactory;
+import org.jboss.tools.flow.common.figure.NodeFigureFactory;
+import org.jboss.tools.flow.common.model.Element;
+
+public class JpdlGraphicalEditPartFactory extends EditPartFactory {
+
+ protected EditPart createNodeEditPart(Element element) {
+ IConfigurationElement configurationElement =
+ (IConfigurationElement)element.getMetaData("configurationElement");
+ if (configurationElement == null) return null;
+ ProcessNodeGraphicalEditPart result = new ProcessNodeGraphicalEditPart();
+ IFigureFactory figureFactory = new NodeFigureFactory(configurationElement);
+ result.setFigureFactory(figureFactory);
+ return result;
+ }
+
+ protected EditPart createFlowEditPart(Element element) {
+ return new ProcessGraphicalEditPart();
+ }
+
+ protected EditPart createConnectionEditPart(Element element) {
+ return new SequenceFlowGraphicalEditPart();
+ }
+
+
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlGraphicalEditPartFactory.java
___________________________________________________________________
Name: svn:mergeinfo
+
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlTreeEditPartFactory.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlTreeEditPartFactory.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlTreeEditPartFactory.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -0,0 +1,15 @@
+package org.jboss.tools.flow.jpdl4.editpart;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartFactory;
+import org.jboss.tools.flow.jpdl4.model.Process;
+
+public class JpdlTreeEditPartFactory implements EditPartFactory {
+
+ public EditPart createEditPart(EditPart context, Object model) {
+ if (model instanceof Process) return new ProcessTreeRootEditPart((Process)model);
+ if (model instanceof ProcessNodeListTreeEditPart) return (EditPart)model;
+ return null;
+ }
+
+}
Deleted:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessEditPart.java 2009-02-13
20:27:37 UTC (rev 13621)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessEditPart.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -1,34 +0,0 @@
-package org.jboss.tools.flow.jpdl4.editpart;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.editpolicies.RootComponentEditPolicy;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.jboss.tools.flow.common.editpart.RootEditPart;
-import org.jboss.tools.flow.common.wrapper.ContainerWrapper;
-import org.jboss.tools.flow.common.wrapper.ModelEvent;
-import org.jboss.tools.flow.jpdl4.policy.ProcessLayoutEditPolicy;
-
-public class ProcessEditPart extends RootEditPart {
-
- protected void createEditPolicies() {
- installEditPolicy(EditPolicy.LAYOUT_ROLE, new ProcessLayoutEditPolicy());
- installEditPolicy(EditPolicy.COMPONENT_ROLE, new RootComponentEditPolicy());
- }
-
- public void modelChanged(ModelEvent event) {
- super.modelChanged(event);
- if (event.getChange() == ContainerWrapper.ADD_ELEMENT) {
- Object changedObject = event.getChangedObject();
- if (changedObject != null) {
- EditPart editPart =
(EditPart)getViewer().getEditPartRegistry().get(changedObject);
- if (editPart instanceof ProcessNodeEditPart) {
- ((ProcessNodeEditPart)editPart).performDirectEdit();
- // force selection to update the properties view
- getViewer().setSelection(new StructuredSelection(editPart));
- }
- }
- }
- }
-
-}
Copied:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessGraphicalEditPart.java
(from rev 13496,
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessEditPart.java)
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessGraphicalEditPart.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessGraphicalEditPart.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -0,0 +1,34 @@
+package org.jboss.tools.flow.jpdl4.editpart;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.editpolicies.RootComponentEditPolicy;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.jboss.tools.flow.common.editpart.RootEditPart;
+import org.jboss.tools.flow.common.wrapper.ContainerWrapper;
+import org.jboss.tools.flow.common.wrapper.ModelEvent;
+import org.jboss.tools.flow.jpdl4.policy.ProcessLayoutEditPolicy;
+
+public class ProcessGraphicalEditPart extends RootEditPart implements
JpdlGraphicalEditPart {
+
+ protected void createEditPolicies() {
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, new ProcessLayoutEditPolicy());
+ installEditPolicy(EditPolicy.COMPONENT_ROLE, new RootComponentEditPolicy());
+ }
+
+ public void modelChanged(ModelEvent event) {
+ super.modelChanged(event);
+ if (event.getChange() == ContainerWrapper.ADD_ELEMENT) {
+ Object changedObject = event.getChangedObject();
+ if (changedObject != null) {
+ EditPart editPart =
(EditPart)getViewer().getEditPartRegistry().get(changedObject);
+ if (editPart instanceof ProcessNodeGraphicalEditPart) {
+ ((ProcessNodeGraphicalEditPart)editPart).performDirectEdit();
+ // force selection to update the properties view
+ getViewer().setSelection(new StructuredSelection(editPart));
+ }
+ }
+ }
+ }
+
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessGraphicalEditPart.java
___________________________________________________________________
Name: svn:mergeinfo
+
Deleted:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeEditPart.java 2009-02-13
20:27:37 UTC (rev 13621)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeEditPart.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -1,33 +0,0 @@
-package org.jboss.tools.flow.jpdl4.editpart;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.jboss.tools.flow.common.editpart.NodeEditPart;
-import org.jboss.tools.flow.common.wrapper.ModelEvent;
-import org.jboss.tools.flow.common.wrapper.Wrapper;
-import org.jboss.tools.flow.jpdl4.policy.ProcessNodeGraphicalNodeEditPolicy;
-
-public class ProcessNodeEditPart extends NodeEditPart {
-
- protected void createEditPolicies() {
- super.createEditPolicies();
- installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new
ProcessNodeGraphicalNodeEditPolicy());
- }
-
- public void modelChanged(ModelEvent event) {
- super.modelChanged(event);
- if (event.getChange() == Wrapper.ADD_INCOMING_CONNECTION) {
- Object object =
getViewer().getEditPartRegistry().get(event.getChangedObject());
- if (object != null && object instanceof SequenceFlowEditPart) {
- getViewer().select((EditPart)object);
- ((SequenceFlowEditPart)object).performDirectEdit();
- }
- }
- }
-
- // make performDirectEdit public
- public void performDirectEdit() {
- super.performDirectEdit();
- }
-
-}
Copied:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeGraphicalEditPart.java
(from rev 13524,
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeEditPart.java)
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeGraphicalEditPart.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeGraphicalEditPart.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -0,0 +1,33 @@
+package org.jboss.tools.flow.jpdl4.editpart;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.jboss.tools.flow.common.editpart.NodeEditPart;
+import org.jboss.tools.flow.common.wrapper.ModelEvent;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.policy.ProcessNodeGraphicalNodeEditPolicy;
+
+public class ProcessNodeGraphicalEditPart extends NodeEditPart implements
JpdlGraphicalEditPart {
+
+ protected void createEditPolicies() {
+ super.createEditPolicies();
+ installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new
ProcessNodeGraphicalNodeEditPolicy());
+ }
+
+ public void modelChanged(ModelEvent event) {
+ super.modelChanged(event);
+ if (event.getChange() == Wrapper.ADD_INCOMING_CONNECTION) {
+ Object object =
getViewer().getEditPartRegistry().get(event.getChangedObject());
+ if (object != null && object instanceof
SequenceFlowGraphicalEditPart) {
+ getViewer().select((EditPart)object);
+ ((SequenceFlowGraphicalEditPart)object).performDirectEdit();
+ }
+ }
+ }
+
+ // make performDirectEdit public
+ public void performDirectEdit() {
+ super.performDirectEdit();
+ }
+
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeGraphicalEditPart.java
___________________________________________________________________
Name: svn:mergeinfo
+
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeListTreeEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeListTreeEditPart.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessNodeListTreeEditPart.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -0,0 +1,27 @@
+package org.jboss.tools.flow.jpdl4.editpart;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.gef.editparts.AbstractTreeEditPart;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.jboss.tools.flow.jpdl4.model.Process;
+import org.jboss.tools.flow.jpdl4.util.SharedImages;
+
+public class ProcessNodeListTreeEditPart extends AbstractTreeEditPart {
+
+ public ProcessNodeListTreeEditPart(Process process) {
+ super(process);
+ }
+
+ protected Image getImage() {
+ String iconPath = "icons/16/node_elements_multiple.gif";
+ ImageDescriptor descriptor = ImageDescriptor.createFromURL(
+ Platform.getBundle("org.jboss.tools.flow.jpdl4").getEntry(iconPath));
+ return SharedImages.INSTANCE.getImage(descriptor);
+ }
+
+ protected String getText() {
+ return "Nodes";
+ }
+
+}
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessTreeRootEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessTreeRootEditPart.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ProcessTreeRootEditPart.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -0,0 +1,24 @@
+package org.jboss.tools.flow.jpdl4.editpart;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.gef.editparts.AbstractTreeEditPart;
+import org.jboss.tools.flow.jpdl4.model.Process;
+
+public class ProcessTreeRootEditPart extends AbstractTreeEditPart {
+
+ public ProcessTreeRootEditPart(Process process) {
+ super(process);
+ }
+
+ protected void createEditPolicies() {
+ }
+
+ protected List<Object> getModelChildren() {
+ List<Object> result = new ArrayList<Object>();
+ result.add(new ProcessNodeListTreeEditPart((Process)getModel()));
+ return result;
+ }
+
+}
Deleted:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/SequenceFlowEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/SequenceFlowEditPart.java 2009-02-13
20:27:37 UTC (rev 13621)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/SequenceFlowEditPart.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -1,65 +0,0 @@
-package org.jboss.tools.flow.jpdl4.editpart;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.PolylineConnection;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.gef.requests.DirectEditRequest;
-import org.jboss.tools.flow.common.editpart.ConnectionEditPart;
-import org.jboss.tools.flow.common.figure.CrossHairDecoration;
-import org.jboss.tools.flow.common.figure.DiamondDecoration;
-import org.jboss.tools.flow.common.model.Element;
-import org.jboss.tools.flow.common.policy.ElementDirectEditPolicy;
-import org.jboss.tools.flow.common.wrapper.ConnectionWrapper;
-import org.jboss.tools.flow.common.wrapper.LabelWrapper;
-import org.jboss.tools.flow.common.wrapper.ModelEvent;
-import org.jboss.tools.flow.common.wrapper.Wrapper;
-import org.jboss.tools.flow.jpdl4.model.SequenceFlow;
-
-public class SequenceFlowEditPart extends ConnectionEditPart {
-
- protected void createEditPolicies() {
- super.createEditPolicies();
- installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new ElementDirectEditPolicy());
- }
-
- protected IFigure createFigure() {
- PolylineConnection result = (PolylineConnection)super.createFigure();
- Element element = ((Wrapper)getModel()).getElement();
- if (element instanceof SequenceFlow) {
- SequenceFlow sequenceFlow = (SequenceFlow)element;
- if (sequenceFlow.isDefault()) {
- result.setSourceDecoration(new CrossHairDecoration());
- } else if (sequenceFlow.isConditional()) {
- result.setSourceDecoration(new DiamondDecoration());
- }
- }
- return result;
- }
-
- public void performRequest(Request request) {
- if (request.getType() == RequestConstants.REQ_DIRECT_EDIT) {
- performDirectEdit();
- } else {
- super.performRequest(request);
- }
- }
-
- protected void performDirectEdit() {
- ConnectionWrapper connectionWrapper = getElementConnection();
- LabelWrapper labelWrapper = connectionWrapper.getLabel();
- if (labelWrapper != null) {
- EditPart editPart = (EditPart)getViewer().getEditPartRegistry().get(labelWrapper);
- if (editPart != null) {
- editPart.performRequest(new DirectEditRequest());
- }
- }
- }
-
- public void modelChanged(ModelEvent event) {
- refresh();
- }
-
-}
Copied:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/SequenceFlowGraphicalEditPart.java
(from rev 13569,
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/SequenceFlowEditPart.java)
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/SequenceFlowGraphicalEditPart.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/SequenceFlowGraphicalEditPart.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -0,0 +1,65 @@
+package org.jboss.tools.flow.jpdl4.editpart;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.PolylineConnection;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.RequestConstants;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.jboss.tools.flow.common.editpart.ConnectionEditPart;
+import org.jboss.tools.flow.common.figure.CrossHairDecoration;
+import org.jboss.tools.flow.common.figure.DiamondDecoration;
+import org.jboss.tools.flow.common.model.Element;
+import org.jboss.tools.flow.common.policy.ElementDirectEditPolicy;
+import org.jboss.tools.flow.common.wrapper.ConnectionWrapper;
+import org.jboss.tools.flow.common.wrapper.LabelWrapper;
+import org.jboss.tools.flow.common.wrapper.ModelEvent;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.SequenceFlow;
+
+public class SequenceFlowGraphicalEditPart extends ConnectionEditPart implements
JpdlGraphicalEditPart {
+
+ protected void createEditPolicies() {
+ super.createEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new ElementDirectEditPolicy());
+ }
+
+ protected IFigure createFigure() {
+ PolylineConnection result = (PolylineConnection)super.createFigure();
+ Element element = ((Wrapper)getModel()).getElement();
+ if (element instanceof SequenceFlow) {
+ SequenceFlow sequenceFlow = (SequenceFlow)element;
+ if (sequenceFlow.isDefault()) {
+ result.setSourceDecoration(new CrossHairDecoration());
+ } else if (sequenceFlow.isConditional()) {
+ result.setSourceDecoration(new DiamondDecoration());
+ }
+ }
+ return result;
+ }
+
+ public void performRequest(Request request) {
+ if (request.getType() == RequestConstants.REQ_DIRECT_EDIT) {
+ performDirectEdit();
+ } else {
+ super.performRequest(request);
+ }
+ }
+
+ protected void performDirectEdit() {
+ ConnectionWrapper connectionWrapper = getElementConnection();
+ LabelWrapper labelWrapper = connectionWrapper.getLabel();
+ if (labelWrapper != null) {
+ EditPart editPart = (EditPart)getViewer().getEditPartRegistry().get(labelWrapper);
+ if (editPart != null) {
+ editPart.performRequest(new DirectEditRequest());
+ }
+ }
+ }
+
+ public void modelChanged(ModelEvent event) {
+ refresh();
+ }
+
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/SequenceFlowGraphicalEditPart.java
___________________________________________________________________
Name: svn:mergeinfo
+
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/TypeMapper.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/TypeMapper.java 2009-02-13
20:27:37 UTC (rev 13621)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/TypeMapper.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -2,6 +2,7 @@
import org.eclipse.gef.EditPart;
import org.eclipse.ui.views.properties.tabbed.AbstractTypeMapper;
+import org.jboss.tools.flow.common.model.Element;
import org.jboss.tools.flow.common.wrapper.Wrapper;
public class TypeMapper extends AbstractTypeMapper {
@@ -9,12 +10,14 @@
@SuppressWarnings("unchecked")
public Class mapType(Object object) {
if (object instanceof EditPart) {
- Object wrapper = ((EditPart)object).getModel();
- if (wrapper instanceof Wrapper) {
- Object element = ((Wrapper)wrapper).getElement();
+ Object model = ((EditPart)object).getModel();
+ if (model instanceof Wrapper) {
+ Object element = ((Wrapper)model).getElement();
if (element != null) {
return element.getClass();
}
+ } else if (model instanceof Element) {
+ return model.getClass();
}
}
return super.mapType(object);
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/util/SharedImages.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/util/SharedImages.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/util/SharedImages.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -0,0 +1,36 @@
+package org.jboss.tools.flow.jpdl4.util;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+
+public class SharedImages {
+
+ public static final SharedImages INSTANCE = new SharedImages();
+
+ private final Map<ImageDescriptor, Image> imageMap = new
HashMap<ImageDescriptor, Image>();
+
+ public Image getImage(ImageDescriptor imageDescriptor) {
+ if (imageDescriptor == null) {
+ return null;
+ }
+ Image image = imageMap.get(imageDescriptor);
+ if (image == null) {
+ image = imageDescriptor.createImage();
+ imageMap.put(imageDescriptor, image);
+ }
+ return image;
+ }
+
+ public void dispose() {
+ Iterator<Image> iterator = imageMap.values().iterator();
+ while (iterator.hasNext()) {
+ iterator.next().dispose();
+ }
+ imageMap.clear();
+ }
+
+}
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/view/DetailsPage.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/view/DetailsPage.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/view/DetailsPage.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -0,0 +1,78 @@
+package org.jboss.tools.flow.jpdl4.view;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.part.Page;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+
+public class DetailsPage extends Page implements IDetailsPage, ISelectionChangedListener
{
+
+ private EditPartViewer viewer;
+ private Control control;
+
+ public DetailsPage(EditPartViewer viewer) {
+ this.viewer = viewer;
+ }
+
+ public Control getControl() {
+ return control;
+ }
+
+ protected EditPartViewer getViewer() {
+ return viewer;
+ }
+
+ public void addSelectionChangedListener(ISelectionChangedListener listener) {
+ getViewer().addSelectionChangedListener(listener);
+ }
+
+ public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+ getViewer().removeSelectionChangedListener(listener);
+ }
+
+ public void createControl(Composite parent) {
+ control = getViewer().createControl(parent);
+ }
+
+ public ISelection getSelection() {
+ if (getViewer() == null) {
+ return StructuredSelection.EMPTY;
+ }
+ return getViewer().getSelection();
+ }
+
+ public void setFocus() {
+ if (getControl() != null) {
+ getControl().setFocus();
+ }
+ }
+
+ public void setSelection(ISelection selection) {
+ if (getViewer() != null) {
+ getViewer().setSelection(selection);
+ }
+ }
+
+ public void selectionChanged(SelectionChangedEvent event) {
+ ISelection selection = event.getSelection();
+ if (selection instanceof IStructuredSelection) {
+ Object object = ((IStructuredSelection)selection).getFirstElement();
+ if (object instanceof EditPart) {
+ object = ((EditPart)object).getModel();
+ }
+ if (object instanceof Wrapper) {
+ object = ((Wrapper)object).getElement();
+ }
+ if (getViewer() != null) {
+ getViewer().setContents(object);
+ }
+ }
+ }
+}
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/view/DetailsView.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/view/DetailsView.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/view/DetailsView.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -0,0 +1,94 @@
+package org.jboss.tools.flow.jpdl4.view;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.part.IPage;
+import org.eclipse.ui.part.IPageBookViewPage;
+import org.eclipse.ui.part.IPageSite;
+import org.eclipse.ui.part.MessagePage;
+import org.eclipse.ui.part.PageBook;
+import org.eclipse.ui.part.PageBookView;
+
+public class DetailsView extends PageBookView implements ISelectionProvider,
+ ISelectionChangedListener {
+
+ public void addSelectionChangedListener(ISelectionChangedListener listener) {
+ getSelectionProvider().addSelectionChangedListener(listener);
+ }
+
+ protected IPage createDefaultPage(PageBook book) {
+ MessagePage page = new MessagePage();
+ initPage(page);
+ page.createControl(book);
+ page.setMessage("Details are not available.");
+ return page;
+ }
+
+ protected PageRec doCreatePage(IWorkbenchPart part) {
+ Object obj = part.getAdapter(IDetailsPage.class);
+ if (obj instanceof IDetailsPage) {
+ IDetailsPage page = (IDetailsPage)obj;
+ if (page instanceof IPageBookViewPage) {
+ initPage((IPageBookViewPage)page);
+ }
+ page.createControl(getPageBook());
+ return new PageRec(part, page);
+ }
+ return null;
+ }
+
+ protected void doDestroyPage(IWorkbenchPart part, PageRec rec) {
+ IDetailsPage page = (IDetailsPage) rec.page;
+ page.dispose();
+ rec.dispose();
+ }
+
+ protected IWorkbenchPart getBootstrapPart() {
+ IWorkbenchPage page = getSite().getPage();
+ if (page != null) {
+ return page.getActiveEditor();
+ }
+ return null;
+ }
+
+ public ISelection getSelection() {
+ return getSelectionProvider().getSelection();
+ }
+
+ protected boolean isImportant(IWorkbenchPart part) {
+ return (part instanceof IEditorPart);
+ }
+
+ public void partBroughtToTop(IWorkbenchPart part) {
+ partActivated(part);
+ }
+
+ public void removeSelectionChangedListener(
+ ISelectionChangedListener listener) {
+ getSelectionProvider().removeSelectionChangedListener(listener);
+ }
+
+ public void selectionChanged(SelectionChangedEvent event) {
+ getSelectionProvider().selectionChanged(event);
+ }
+
+ public void setSelection(ISelection selection) {
+ getSelectionProvider().setSelection(selection);
+ }
+
+ protected void showPageRec(PageRec pageRec) {
+ IPageSite pageSite = getPageSite(pageRec.page);
+ ISelectionProvider provider = pageSite.getSelectionProvider();
+ if (provider == null && (pageRec.page instanceof IDetailsPage)) {
+ // This means that the page did not set a provider during its initialization
+ // so for backward compatibility we will set the page itself as the
provider.
+ pageSite.setSelectionProvider((IDetailsPage) pageRec.page);
+ }
+ super.showPageRec(pageRec);
+ }
+}
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/view/IDetailsPage.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/view/IDetailsPage.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/view/IDetailsPage.java 2009-02-13
20:28:00 UTC (rev 13622)
@@ -0,0 +1,8 @@
+package org.jboss.tools.flow.jpdl4.view;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.ui.part.IPage;
+
+public interface IDetailsPage extends IPage, ISelectionProvider {
+
+}