Author: koen.aers(a)jboss.com
Date: 2010-02-04 22:46:46 -0500 (Thu, 04 Feb 2010)
New Revision: 20135
Added:
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/deployment/DeploymentInfo.java
Modified:
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/common/editor/AbstractContentProvider.java
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/common/editor/Editor.java
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/deployment/DeploymentForm.java
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/editor/JpdlContentProvider.java
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/editor/JpdlDeploymentEditorPage.java
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/editor/JpdlEditor.java
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlRootContainer.java
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/prefs/ServerDeploymentPage.java
Log:
Selections on deployment screen get undone after saving project: JBIDE-5595
Modified:
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/common/editor/AbstractContentProvider.java
===================================================================
---
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/common/editor/AbstractContentProvider.java 2010-02-05
02:09:19 UTC (rev 20134)
+++
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/common/editor/AbstractContentProvider.java 2010-02-05
03:46:46 UTC (rev 20135)
@@ -92,10 +92,6 @@
return result + ".jpg";
}
-// public String getSemanticInfoFileName(String notationInfoFileName) {
-// return notationInfoFileName.substring(5);
-// }
-
protected void processRootContainer(RootContainer rootContainer, Element notationInfo)
{
addDimension(rootContainer, notationInfo);
addNodes(rootContainer, notationInfo);
@@ -273,13 +269,13 @@
return result;
}
- private String toNotationInfoXml(RootContainer rootContainer) {
+ protected String toNotationInfoXml(RootContainer rootContainer) {
StringWriter writer = new StringWriter();
write(rootContainer, writer);
return writer.toString();
}
- private void write(
+ protected void write(
RootContainer rootContainer, Writer writer) {
try {
Document document = DocumentHelper.createDocument();
@@ -292,7 +288,7 @@
}
}
- private void write(
+ protected void write(
RootContainer rootContainer,
Element element) {
addAttribute(element, "name",
((NamedElement)rootContainer.getSemanticElement()).getName());
@@ -304,7 +300,7 @@
}
}
- private void write(Node node, Element element) {
+ protected void write(Node node, Element element) {
Element newElement = null;
if (node instanceof AbstractNodeContainer) {
newElement = addElement(element, "node-container");
@@ -329,7 +325,7 @@
}
}
- private void write(Edge edge,
+ protected void write(Edge edge,
Element element) {
Point offset = edge.getLabel().getOffset();
if (offset != null) {
@@ -343,7 +339,7 @@
}
}
- private void write(BendPoint bendpoint, Element bendpointElement) {
+ protected void write(BendPoint bendpoint, Element bendpointElement) {
addAttribute(bendpointElement, "w1", String.valueOf(bendpoint
.getFirstRelativeDimension().width));
addAttribute(bendpointElement, "h1", String.valueOf(bendpoint
@@ -354,12 +350,12 @@
.getSecondRelativeDimension().height));
}
- private Element addElement(Element element, String elementName) {
+ protected Element addElement(Element element, String elementName) {
Element newElement = element.addElement(elementName);
return newElement;
}
- private void addAttribute(Element e, String attributeName,
+ protected void addAttribute(Element e, String attributeName,
String value) {
if (value != null) {
e.addAttribute(attributeName, value);
@@ -374,7 +370,7 @@
}
}
- private IFile getNotationInfoFile(IFile semanticInfoFile) {
+ protected IFile getNotationInfoFile(IFile semanticInfoFile) {
IProject project = semanticInfoFile.getProject();
IPath semanticInfoPath = semanticInfoFile.getProjectRelativePath();
IPath notationInfoPath =
semanticInfoPath.removeLastSegments(1).append(getNotationInfoFileName(semanticInfoFile.getName()));
Modified: trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/common/editor/Editor.java
===================================================================
---
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/common/editor/Editor.java 2010-02-05
02:09:19 UTC (rev 20134)
+++
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/common/editor/Editor.java 2010-02-05
03:46:46 UTC (rev 20135)
@@ -208,8 +208,7 @@
private void handleCommandStackChanged() {
getActionRegistry().updateStackActions();
if (!isDirty() && getCommandStack().isDirty() && editAllowed()) {
- isDirty = true;
- firePropertyChange(IEditorPart.PROP_DIRTY);
+ setDirty(true);
}
}
@@ -230,6 +229,7 @@
public void setDirty(boolean dirty) {
isDirty = dirty;
+ firePropertyChange(IEditorPart.PROP_DIRTY);
}
public boolean isDirty() {
Modified:
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/deployment/DeploymentForm.java
===================================================================
---
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/deployment/DeploymentForm.java 2010-02-05
02:09:19 UTC (rev 20134)
+++
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/deployment/DeploymentForm.java 2010-02-05
03:46:46 UTC (rev 20135)
@@ -35,12 +35,16 @@
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jdt.core.IPackageFragmentRoot;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
+import org.eclipse.jface.viewers.ICheckStateListener;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
@@ -80,6 +84,7 @@
private Composite composite;
private IFolder processFolder;
private JpdlEditor editor;
+ private DeploymentInfo deploymentInfo;
private Form form;
private Text nameText;
@@ -138,6 +143,31 @@
});
}
+ private IPreferenceStore getPreferenceStore() {
+ return Plugin.getDefault().getPreferenceStore();
+ }
+
+ public DeploymentInfo getDeploymentInfo() {
+ if (deploymentInfo == null) {
+ deploymentInfo = new DeploymentInfo();
+ String serverName = getPreferenceStore().getString("server name");
+ deploymentInfo.setServerName(serverName == null ? "localhost" :
serverName);
+ String serverPort = getPreferenceStore().getString("server port");
+ deploymentInfo.setServerPort(serverPort == null ? "8080" : serverPort);
+ String serverDeployer = getPreferenceStore().getString("server deployer");
+ deploymentInfo.setServerDeployer(serverDeployer == null ?
"/jbpm-console/upload" : serverDeployer);
+ final IJavaProject project = JavaCore.create(processFolder.getProject());
+ deploymentInfo.setClassesAndResources(new
ArrayList(getElementsToCheckFor(project)).toArray());
+ deploymentInfo.setFilesAndFolders(getElementsToCheckFor(processFolder).toArray());
+ }
+ return deploymentInfo;
+ }
+
+ public void setDeploymentInfo(DeploymentInfo deploymentInfo) {
+ this.deploymentInfo = deploymentInfo;
+ refresh();
+ }
+
private ProcessDeployer createProcessDeployer() {
ProcessDeployer result = new ProcessDeployer();
String location = null;
@@ -249,14 +279,16 @@
Label nameLabel = toolkit.createLabel(infoFormClient, "Server Name:");
nameLabel.setForeground(toolkit.getColors().getColor(FormColors.TITLE));
nameText = toolkit.createText(infoFormClient, "");
- String nameString = Plugin.getDefault().getPreferenceStore().getString("server
name");
- nameText.setText(nameString == null || "".equals(nameString) ?
"localhost" : nameString);
+ String nameString = getDeploymentInfo().getServerName();
+ nameText.setText(nameString == null ? "localhost" : nameString);
GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.horizontalSpan = 2;
nameText.setLayoutData(gridData);
nameText.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
updateTestConnectionAndDeployButtons();
+ getDeploymentInfo().setServerName(nameText.getText());
+ editor.setDirty(true);
}
});
}
@@ -265,14 +297,16 @@
Label portLabel = toolkit.createLabel(infoFormClient, "Server Port:");
portLabel.setForeground(toolkit.getColors().getColor(FormColors.TITLE));
portText = toolkit.createText(infoFormClient, "");
- String portString = Plugin.getDefault().getPreferenceStore().getString("server
port");
- portText.setText(portString == null || "".equals(portString)?
"8080" : portString);
+ String portString = getDeploymentInfo().getServerPort();
+ portText.setText(portString == null ? "8080" : portString);
GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.horizontalSpan = 2;
portText.setLayoutData(gridData);
portText.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
updateTestConnectionAndDeployButtons();
+ getDeploymentInfo().setServerPort(portText.getText());
+ editor.setDirty(true);
}
});
}
@@ -281,14 +315,16 @@
Label deployerLabel = toolkit.createLabel(infoFormClient, "Server
Deployer:");
deployerLabel.setForeground(toolkit.getColors().getColor(FormColors.TITLE));
deployerText = toolkit.createText(infoFormClient, "");
- String deployerString = Plugin.getDefault().getPreferenceStore().getString("server
deployer");
- deployerText.setText(deployerString == null || "".equals(deployerString)?
"/jbpm-console/upload" : deployerString);
+ String deployerString = deploymentInfo.getServerDeployer();
+ deployerText.setText(deployerString == null ? "/jbpm-console/upload" :
deployerString);
GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.horizontalSpan = 2;
deployerText.setLayoutData(gridData);
deployerText.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
updateTestConnectionAndDeployButtons();
+ getDeploymentInfo().setServerDeployer(deployerText.getText());
+ editor.setDirty(true);
}
});
}
@@ -373,9 +409,15 @@
includeFilesTreeViewer.setInput(processFolder);
tree.getDisplay().asyncExec(new Runnable() {
public void run() {
- includeFilesTreeViewer.setCheckedElements(getElementsToCheckFor(processFolder).toArray());
+ includeFilesTreeViewer.setCheckedElements(getDeploymentInfo().getFilesAndFolders());
}
});
+ includeFilesTreeViewer.addCheckStateListener(new ICheckStateListener() {
+ public void checkStateChanged(CheckStateChangedEvent event) {
+ getDeploymentInfo().setFilesAndFolders(includeFilesTreeViewer.getCheckedElements());
+ editor.setDirty(true);
+ }
+ });
final Button includeFilesDefaultButton = toolkit.createButton(includeFilesFormClient,
"Reset Defaults", SWT.PUSH);
includeFilesDefaultButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
@@ -383,7 +425,7 @@
public void widgetSelected(SelectionEvent e) {
includeFilesDefaultButton.getDisplay().asyncExec(new Runnable() {
public void run() {
- includeFilesTreeViewer.setCheckedElements(getElementsToCheckFor(processFolder).toArray());
+ includeFilesTreeViewer.setCheckedElements(getDeploymentInfo().getFilesAndFolders());
}
});
}
@@ -458,9 +500,15 @@
}
composite.getDisplay().asyncExec(new Runnable() {
public void run() {
- includeClassesTreeViewer.setCheckedElements(getElementsToCheckFor(project).toArray());
+ includeClassesTreeViewer.setCheckedElements(getDeploymentInfo().getClassesAndResources());
}
});
+ includeClassesTreeViewer.addCheckStateListener(new ICheckStateListener() {
+ public void checkStateChanged(CheckStateChangedEvent event) {
+ getDeploymentInfo().setClassesAndResources(includeClassesTreeViewer.getCheckedElements());
+ editor.setDirty(true);
+ }
+ });
final Button includeClassesDefaultButton =
toolkit.createButton(includeClassesFormClient, "Reset Defaults", SWT.PUSH);
includeClassesDefaultButton.setLayoutData(new
GridData(GridData.HORIZONTAL_ALIGN_END));
@@ -468,7 +516,7 @@
public void widgetSelected(SelectionEvent e) {
composite.getDisplay().asyncExec(new Runnable() {
public void run() {
- includeClassesTreeViewer.setCheckedElements(getElementsToCheckFor(project).toArray());
+ includeClassesTreeViewer.setCheckedElements(getDeploymentInfo().getClassesAndResources());
}
});
}
@@ -476,7 +524,7 @@
return includeClassesFormClient;
}
-
+
private Composite createLocalSaveFormClient() {
Section httpInfoDetails = toolkit.createSection(form.getBody(), Section.TITLE_BAR |
Section.DESCRIPTION);
httpInfoDetails.marginWidth = 5;
@@ -592,49 +640,49 @@
});
}
- public void refresh(final ArrayList objectsToRefresh) {
- form.getDisplay().asyncExec(new Runnable() {
- public void run() {
- refreshIncludeClassesTreeViewer(objectsToRefresh);
- refreshIncludeFilesTreeViewer(objectsToRefresh);
- }
- });
- }
+// public void refresh(final ArrayList objectsToRefresh) {
+// form.getDisplay().asyncExec(new Runnable() {
+// public void run() {
+// refreshIncludeClassesTreeViewer(objectsToRefresh);
+// refreshIncludeFilesTreeViewer(objectsToRefresh);
+// }
+// });
+// }
- private void refreshIncludeFilesTreeViewer(ArrayList objectsToRefresh) {
- Object[] elements = includeFilesTreeViewer.getCheckedElements();
- includeFilesTreeViewer.refresh();
- includeFilesTreeViewer.setCheckedElements(elements);
- IWorkspaceRoot root = processFolder.getWorkspace().getRoot();
- for (int i = 0; i < objectsToRefresh.size(); i++) {
- IPath path = (IPath)objectsToRefresh.get(i);
- if (root.getFile(path).exists()) {
- includeFilesTreeViewer.setChecked(root.getFile(path), true);
- } else if (root.getFolder(path).exists()) {
- includeFilesTreeViewer.setChecked(root.getFolder(path), true);
- }
- }
- }
+// private void refreshIncludeFilesTreeViewer(ArrayList objectsToRefresh) {
+// Object[] elements = includeFilesTreeViewer.getCheckedElements();
+// includeFilesTreeViewer.refresh();
+// includeFilesTreeViewer.setCheckedElements(elements);
+// IWorkspaceRoot root = processFolder.getWorkspace().getRoot();
+// for (int i = 0; i < objectsToRefresh.size(); i++) {
+// IPath path = (IPath)objectsToRefresh.get(i);
+// if (root.getFile(path).exists()) {
+// includeFilesTreeViewer.setChecked(root.getFile(path), true);
+// } else if (root.getFolder(path).exists()) {
+// includeFilesTreeViewer.setChecked(root.getFolder(path), true);
+// }
+// }
+// }
- private void refreshIncludeClassesTreeViewer(ArrayList objectsToRefresh) {
- Set referencedJavaClassNames = null;
- Object[] elements = includeClassesTreeViewer.getCheckedElements();
- includeClassesTreeViewer.refresh();
- includeClassesTreeViewer.setCheckedElements(elements);
- IWorkspaceRoot root = processFolder.getWorkspace().getRoot();
- for (int i = 0; i < objectsToRefresh.size(); i++) {
- IPath path = (IPath)objectsToRefresh.get(i);
- IJavaElement javaElement = JavaCore.create(root.getFile(path));
- if (javaElement != null && javaElement instanceof ICompilationUnit) {
- if (referencedJavaClassNames == null) {
- referencedJavaClassNames =
JavaClassNameCollector.getJavaClassNames(editor.getProcessDefinition());
- }
- String name = getTypeName((ICompilationUnit)javaElement);
- boolean checkNeeded = referencedJavaClassNames.contains(name);
- includeClassesTreeViewer.setChecked(javaElement, checkNeeded);
- }
- }
- }
+// private void refreshIncludeClassesTreeViewer(ArrayList objectsToRefresh) {
+// Set referencedJavaClassNames = null;
+// Object[] elements = includeClassesTreeViewer.getCheckedElements();
+// includeClassesTreeViewer.refresh();
+// includeClassesTreeViewer.setCheckedElements(elements);
+// IWorkspaceRoot root = processFolder.getWorkspace().getRoot();
+// for (int i = 0; i < objectsToRefresh.size(); i++) {
+// IPath path = (IPath)objectsToRefresh.get(i);
+// IJavaElement javaElement = JavaCore.create(root.getFile(path));
+// if (javaElement != null && javaElement instanceof ICompilationUnit) {
+// if (referencedJavaClassNames == null) {
+// referencedJavaClassNames =
JavaClassNameCollector.getJavaClassNames(editor.getProcessDefinition());
+// }
+// String name = getTypeName((ICompilationUnit)javaElement);
+// boolean checkNeeded = referencedJavaClassNames.contains(name);
+// includeClassesTreeViewer.setChecked(javaElement, checkNeeded);
+// }
+// }
+// }
private String getTypeName(ICompilationUnit unit) {
try {
@@ -688,12 +736,14 @@
public void refresh() {
if (composite.isDisposed()) return;
- final IJavaProject project = JavaCore.create(processFolder.getProject());
+ nameText.setText(getDeploymentInfo().getServerName());
+ portText.setText(getDeploymentInfo().getServerPort());
+ deployerText.setText(getDeploymentInfo().getServerDeployer());
composite.getDisplay().asyncExec(new Runnable() {
public void run() {
if (!includeClassesTreeViewer.getTree().isDisposed()) {
includeClassesTreeViewer.refresh();
- includeClassesTreeViewer.setCheckedElements(getElementsToCheckFor(project).toArray());
+ includeClassesTreeViewer.setCheckedElements(getDeploymentInfo().getClassesAndResources());
}
}
});
@@ -701,7 +751,7 @@
public void run() {
if (!includeFilesTreeViewer.getTree().isDisposed()) {
includeFilesTreeViewer.refresh();
- includeFilesTreeViewer.setCheckedElements(getElementsToCheckFor(processFolder).toArray());
+ includeFilesTreeViewer.setCheckedElements(getDeploymentInfo().getFilesAndFolders());
}
}
});
Added:
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/deployment/DeploymentInfo.java
===================================================================
---
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/deployment/DeploymentInfo.java
(rev 0)
+++
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/deployment/DeploymentInfo.java 2010-02-05
03:46:46 UTC (rev 20135)
@@ -0,0 +1,64 @@
+package org.jbpm.gd.jpdl.deployment;
+
+import java.util.ArrayList;
+
+import org.eclipse.core.resources.IFolder;
+
+public class DeploymentInfo {
+
+ private String serverName = null;
+ private String serverPort = null;
+ private String serverDeployer = null;
+ private IFolder processFolder = null;
+ private Object[] classesAndResources = null;
+ private Object[] filesAndFolders = null;
+
+ public void setServerName(String serverName) {
+ this.serverName = serverName;
+ }
+
+ public String getServerName() {
+ return serverName;
+ }
+
+ public void setServerPort(String serverPort) {
+ this.serverPort = serverPort;
+ }
+
+ public String getServerPort() {
+ return serverPort;
+ }
+
+ public void setServerDeployer(String serverDeployer) {
+ this.serverDeployer = serverDeployer;
+ }
+
+ public String getServerDeployer() {
+ return serverDeployer;
+ }
+
+ public void setProcessFolder(IFolder processFolder) {
+ this.processFolder = processFolder;
+ }
+
+ public IFolder getProcessFolder() {
+ return processFolder;
+ }
+
+ public void setClassesAndResources(Object[] classesAndResources) {
+ this.classesAndResources = classesAndResources;
+ }
+
+ public Object[] getClassesAndResources() {
+ return classesAndResources;
+ }
+
+ public void setFilesAndFolders(Object[] filesAndFolders) {
+ this.filesAndFolders = filesAndFolders;
+ }
+
+ public Object[] getFilesAndFolders() {
+ return filesAndFolders;
+ }
+
+}
Property changes on:
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/deployment/DeploymentInfo.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/editor/JpdlContentProvider.java
===================================================================
---
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/editor/JpdlContentProvider.java 2010-02-05
02:09:19 UTC (rev 20134)
+++
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/editor/JpdlContentProvider.java 2010-02-05
03:46:46 UTC (rev 20135)
@@ -21,21 +21,45 @@
*/
package org.jbpm.gd.jpdl.editor;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.List;
import java.util.StringTokenizer;
+import org.dom4j.Attribute;
+import org.dom4j.DocumentException;
import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.part.FileEditorInput;
import org.jbpm.gd.common.editor.AbstractContentProvider;
import org.jbpm.gd.common.model.SemanticElement;
import org.jbpm.gd.common.notation.Edge;
import org.jbpm.gd.common.notation.Node;
import org.jbpm.gd.common.notation.NodeContainer;
import org.jbpm.gd.common.notation.NotationElement;
+import org.jbpm.gd.common.notation.RootContainer;
+import org.jbpm.gd.jpdl.deployment.DeploymentInfo;
import org.jbpm.gd.jpdl.model.NodeElement;
import org.jbpm.gd.jpdl.model.NodeElementContainer;
import org.jbpm.gd.jpdl.model.Transition;
public class JpdlContentProvider extends AbstractContentProvider{
+ JpdlEditor jpdlEditor;
+
+ public JpdlContentProvider(JpdlEditor jpdlEditor) {
+ this.jpdlEditor = jpdlEditor;
+ }
+
public String getNotationInfoFileName(String semanticInfoFileName) {
if ("processdefinition.xml".equals(semanticInfoFileName)) {
return "gpd.xml";
@@ -52,14 +76,6 @@
}
}
-// public String getSemanticInfoFileName(String notationInfoFileName) {
-// if ("gpd.xml".equals(notationInfoFileName)) {
-// return "processdefinition.xml";
-// } else {
-// return super.getSemanticInfoFileName(notationInfoFileName);
-// }
-// }
-
protected void addNodes(NodeContainer nodeContainer, Element notationInfo) {
NodeElementContainer nodeElementContainer =
(NodeElementContainer)nodeContainer.getSemanticElement();
addNodes(nodeContainer, nodeElementContainer.getNodeElements(), notationInfo);
@@ -97,4 +113,122 @@
return (NodeElement)parent;
}
+ protected void write(
+ RootContainer rootContainer,
+ Element element) {
+ super.write(rootContainer, element);
+ writeDeploymentInfo(jpdlEditor.getDeploymentInfo(), element);
+ }
+
+ private void writeDeploymentInfo(DeploymentInfo deploymentInfo, Element element) {
+ Element deploymentElement = addElement(element, "deployment");
+ addAttribute(deploymentElement, "serverName",
deploymentInfo.getServerName());
+ addAttribute(deploymentElement, "serverPort",
deploymentInfo.getServerPort());
+ addAttribute(deploymentElement, "serverDeployer",
deploymentInfo.getServerDeployer());
+ Element classesAndResourcesElement = addElement(deploymentElement,
"classesAndResources");
+ Object[] classesAndResources = deploymentInfo.getClassesAndResources();
+ for (int i = 0; i < classesAndResources.length; i++) {
+ Object object = classesAndResources[i];
+ String value = null;
+ if (object instanceof ICompilationUnit) {
+ value = ((ICompilationUnit)object).getResource().getFullPath().toString();
+ } else if (object instanceof IResource) {
+ value = ((IResource)object).getFullPath().toString();
+ }
+ if (value != null) {
+ Element el = addElement(classesAndResourcesElement, "element");
+ addAttribute(el, "value", value);
+ }
+ }
+ Element filesAndFoldersElement = addElement(deploymentElement,
"filesAndFolders");
+ Object[] filesAndFolders = deploymentInfo.getFilesAndFolders();
+ for (int i = 0; i < filesAndFolders.length; i++) {
+ Object object = filesAndFolders[i];
+ if (object instanceof IFile) {
+ Element el = addElement(filesAndFoldersElement, "element");
+ addAttribute(el, "value", ((IFile)object).getFullPath().toString());
+ }
+ }
+ }
+
+ protected void addDeploymentInfo(DeploymentInfo deploymentInfo, IEditorInput
editorInput) {
+ try {
+ IFile file = getNotationInfoFile(((FileEditorInput)editorInput).getFile());
+ // the file should exist as this is performed by the addNotationInfo previously
+ InputStreamReader reader = new InputStreamReader(file.getContents());
+ Element rootElement = new SAXReader().read(reader).getRootElement();
+ processDeploymentInfo(deploymentInfo, rootElement);
+ } catch (DocumentException e) {
+ e.printStackTrace();
+ throw new RuntimeException(e);
+ } catch (CoreException e) {
+ e.printStackTrace();
+ throw new RuntimeException(e);
+ }
+ }
+
+ protected void processDeploymentInfo(DeploymentInfo deploymentInfo, Element element) {
+ Element deploymentElement = element.element("deployment");
+ if (deploymentElement == null) return;
+ processServerName(deploymentInfo,
deploymentElement.attribute("serverName"));
+ processServerPort(deploymentInfo,
deploymentElement.attribute("serverPort"));
+ processServerDeployer(deploymentInfo,
deploymentElement.attribute("serverDeployer"));
+ processClassesAndResources(deploymentInfo,
deploymentElement.element("classesAndResources"));
+ processFilesAndFolders(deploymentInfo,
deploymentElement.element("filesAndFolders"));
+ }
+
+ protected void processServerName(DeploymentInfo deploymentInfo, Attribute attribute) {
+ if (attribute == null) return;
+ String value = attribute.getValue();
+ if (value == null) return;
+ deploymentInfo.setServerName(value);
+ }
+
+ protected void processServerPort(DeploymentInfo deploymentInfo, Attribute attribute) {
+ if (attribute == null) return;
+ String value = attribute.getValue();
+ if (value == null) return;
+ deploymentInfo.setServerPort(value);
+ }
+
+ protected void processServerDeployer(DeploymentInfo deploymentInfo, Attribute attribute)
{
+ if (attribute == null) return;
+ String value = attribute.getValue();
+ if (value == null) return;
+ deploymentInfo.setServerDeployer(value);
+ }
+
+ protected void processClassesAndResources(DeploymentInfo deploymentInfo, Element
element) {
+ if (element == null) return;
+ ArrayList classesAndResources = new ArrayList();
+ List elements = element.elements("element");
+ for (int i = 0; i < elements.size(); i++) {
+ String value = ((Element)elements.get(i)).attributeValue("value");
+ IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(value));
+ if (!file.exists()) continue;
+ IJavaElement javaElement = JavaCore.create(file);
+ if (javaElement != null) {
+ classesAndResources.add(javaElement);
+ } else {
+ classesAndResources.add(file);
+ }
+ }
+ deploymentInfo.setClassesAndResources(classesAndResources.toArray());
+ }
+
+ protected void processFilesAndFolders(DeploymentInfo deploymentInfo, Element element) {
+ if (element == null) return;
+ ArrayList filesAndFolders = new ArrayList();
+ List elements = element.elements("element");
+ for (int i = 0; i < elements.size(); i++) {
+ String value = ((Element)elements.get(i)).attributeValue("value");
+ IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(value));
+ if (!file.exists()) continue;
+ filesAndFolders.add(file);
+ }
+ deploymentInfo.setFilesAndFolders(filesAndFolders.toArray());
+ }
+
+
+
}
Modified:
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/editor/JpdlDeploymentEditorPage.java
===================================================================
---
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/editor/JpdlDeploymentEditorPage.java 2010-02-05
02:09:19 UTC (rev 20134)
+++
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/editor/JpdlDeploymentEditorPage.java 2010-02-05
03:46:46 UTC (rev 20135)
@@ -36,6 +36,7 @@
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.eclipse.ui.part.EditorPart;
import org.jbpm.gd.jpdl.deployment.DeploymentForm;
+import org.jbpm.gd.jpdl.deployment.DeploymentInfo;
public class JpdlDeploymentEditorPage extends EditorPart {
@@ -64,11 +65,11 @@
IFolder folder = getProcessFolder();
deploymentForm = new DeploymentForm(toolkit, form, folder, editor);
deploymentForm.create();
- folder.getWorkspace().addResourceChangeListener(new IResourceChangeListener() {
- public void resourceChanged(IResourceChangeEvent event) {
- deploymentForm.refresh();
- }
- });
+// folder.getWorkspace().addResourceChangeListener(new IResourceChangeListener() {
+// public void resourceChanged(IResourceChangeEvent event) {
+// deploymentForm.refresh();
+// }
+// });
}
private IFolder getProcessFolder() {
@@ -85,6 +86,14 @@
public void doSave(IProgressMonitor monitor) {
}
+ public DeploymentInfo getDeploymentInfo() {
+ return deploymentForm.getDeploymentInfo();
+ }
+
+ public void setDeploymentInfo(DeploymentInfo deploymentInfo) {
+ deploymentForm.setDeploymentInfo(deploymentInfo);
+ }
+
public void doSaveAs() {
}
@@ -100,4 +109,5 @@
setSite(site);
setInput(input);
}
- }
+
+}
Modified: trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/editor/JpdlEditor.java
===================================================================
---
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/editor/JpdlEditor.java 2010-02-05
02:09:19 UTC (rev 20134)
+++
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/editor/JpdlEditor.java 2010-02-05
03:46:46 UTC (rev 20135)
@@ -43,6 +43,7 @@
import org.jbpm.gd.common.editor.OutlineViewer;
import org.jbpm.gd.common.editor.SelectionSynchronizer;
import org.jbpm.gd.common.model.SemanticElement;
+import org.jbpm.gd.jpdl.deployment.DeploymentInfo;
import org.jbpm.gd.jpdl.model.ProcessDefinition;
import org.jbpm.gd.jpdl.part.JpdlEditorOutlineEditPartFactory;
import org.jbpm.gd.jpdl.part.JpdlGraphicalEditPartFactory;
@@ -50,6 +51,7 @@
public class JpdlEditor extends Editor {
private IResourceChangeListener resourceChangeListener;
+ private JpdlDeploymentEditorPage deploymentEditorPage;
public void init(IEditorSite site, IEditorInput input)
throws PartInitException {
@@ -107,7 +109,7 @@
}
protected ContentProvider createContentProvider() {
- return new JpdlContentProvider();
+ return new JpdlContentProvider(this);
}
protected GraphicalViewer createGraphicalViewer() {
@@ -128,8 +130,16 @@
protected void createPages() {
super.createPages();
- addPage(1, new JpdlDeploymentEditorPage(this), "Deployment");
+ initDeploymentPage();
}
+
+ protected void initDeploymentPage() {
+ deploymentEditorPage = new JpdlDeploymentEditorPage(this);
+ addPage(1, deploymentEditorPage, "Deployment");
+ DeploymentInfo deploymentInfo = getDeploymentInfo();
+ ((JpdlContentProvider)getContentProvider()).addDeploymentInfo(deploymentInfo,
getEditorInput());
+ deploymentEditorPage.setDeploymentInfo(deploymentInfo);
+ }
protected SemanticElement createMainElement() {
return
getSemanticElementFactory().createById("org.jbpm.gd.jpdl.processDefinition");
@@ -138,6 +148,10 @@
public ProcessDefinition getProcessDefinition() {
return (ProcessDefinition)getRootContainer().getSemanticElement();
}
+
+ public DeploymentInfo getDeploymentInfo() {
+ return deploymentEditorPage.getDeploymentInfo();
+ }
public void dispose() {
getWorkspace().removeResourceChangeListener(resourceChangeListener);
Modified:
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlRootContainer.java
===================================================================
---
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlRootContainer.java 2010-02-05
02:09:19 UTC (rev 20134)
+++
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/notation/JpdlRootContainer.java 2010-02-05
03:46:46 UTC (rev 20135)
@@ -7,6 +7,7 @@
import org.jbpm.gd.common.notation.Edge;
import org.jbpm.gd.common.notation.Node;
import org.jbpm.gd.common.notation.RootContainer;
+import org.jbpm.gd.jpdl.deployment.DeploymentInfo;
import org.jbpm.gd.jpdl.model.NodeElement;
import org.jbpm.gd.jpdl.model.Transition;
Modified:
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/prefs/ServerDeploymentPage.java
===================================================================
---
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/prefs/ServerDeploymentPage.java 2010-02-05
02:09:19 UTC (rev 20134)
+++
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/prefs/ServerDeploymentPage.java 2010-02-05
03:46:46 UTC (rev 20135)
@@ -25,7 +25,6 @@
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;