JBoss Tools SVN: r24226 - in branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl: src/org/jbpm/gd/jpdl/refactoring and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: koen.aers(a)jboss.com
Date: 2010-08-17 16:33:42 -0400 (Tue, 17 Aug 2010)
New Revision: 24226
Added:
branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessProcessor.java
branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessWizard.java
Modified:
branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl/plugin.xml
branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessHandler.java
Log:
JBIDE-6650
Modified: branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl/plugin.xml
===================================================================
--- branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl/plugin.xml 2010-08-17 20:19:52 UTC (rev 24225)
+++ branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl/plugin.xml 2010-08-17 20:33:42 UTC (rev 24226)
@@ -1600,6 +1600,21 @@
</iterate>
</activeWhen>
</handler>
+ <handler
+ class="org.jbpm.gd.jpdl.refactoring.MoveProcessHandler"
+ commandId="org.eclipse.ltk.ui.refactoring.commands.moveResources">
+ <activeWhen>
+ <iterate>
+ <and>
+ <instanceof value="org.eclipse.core.resources.IResource" />
+ <or>
+ <test property="org.eclipse.core.resources.name" value="*.jpdl.xml" />
+ <test property="org.eclipse.core.resources.name" value="*.gpd.xml" />
+ </or>
+ </and>
+ </iterate>
+ </activeWhen>
+ </handler>
</extension>
</plugin>
Modified: branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessHandler.java
===================================================================
--- branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessHandler.java 2010-08-17 20:19:52 UTC (rev 24225)
+++ branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessHandler.java 2010-08-17 20:33:42 UTC (rev 24226)
@@ -2,12 +2,38 @@
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.handlers.HandlerUtil;
public class MoveProcessHandler extends AbstractProcessHandler {
- public Object execute(ExecutionEvent arg0) throws ExecutionException {
- System.out.println("hello, move world");
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ Shell activeShell= HandlerUtil.getActiveShell(event);
+ ISelection sel= HandlerUtil.getCurrentSelection(event);
+ if (sel instanceof IStructuredSelection) {
+ IResource resource= getCurrentResource((IStructuredSelection) sel);
+ if (resource != null) {
+ MoveProcessWizard refactoringWizard= new MoveProcessWizard(resource);
+ RefactoringWizardOpenOperation op= new RefactoringWizardOpenOperation(refactoringWizard);
+ try {
+ op.run(activeShell, "Move Process");
+ } catch (InterruptedException e) {
+ // do nothing
+ }
+ }
+ }
return null;
}
+ private IResource getCurrentResource(IStructuredSelection sel) {
+ IResource[] resources= getSelectedResources(sel);
+ if (resources.length == 1) {
+ return resources[0];
+ }
+ return null;
+ }
}
Added: branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessProcessor.java
===================================================================
--- branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessProcessor.java (rev 0)
+++ branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessProcessor.java 2010-08-17 20:33:42 UTC (rev 24226)
@@ -0,0 +1,215 @@
+package org.jbpm.gd.jpdl.refactoring;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceStatus;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ltk.core.refactoring.Change;
+import org.eclipse.ltk.core.refactoring.CompositeChange;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
+import org.eclipse.ltk.core.refactoring.participants.MoveProcessor;
+import org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant;
+import org.eclipse.ltk.core.refactoring.participants.ResourceChangeChecker;
+import org.eclipse.ltk.core.refactoring.participants.SharableParticipants;
+import org.eclipse.ltk.core.refactoring.resource.MoveResourceChange;
+
+public class MoveProcessProcessor extends MoveProcessor {
+
+ private final IResource[] resourcesToMove;
+ private IContainer destination;
+
+ public MoveProcessProcessor(IResource resource) {
+ IResource jpdlResource = null, gpdResource = null;
+ if (resource == null || !resource.exists()) {
+ throw new IllegalArgumentException("resource must not be null and must exist");
+ }
+ if (isJpdlFile(resource)) {
+ jpdlResource = resource;
+ gpdResource = getGpdResource(resource);
+ } else if (isGpdFile(resource)) {
+ jpdlResource = getJpdlResource(resource);
+ gpdResource = resource;
+ }
+ if (jpdlResource != null && jpdlResource.exists() && gpdResource != null && gpdResource.exists()) {
+ resourcesToMove = new IResource[] { jpdlResource, gpdResource };
+ } else {
+ throw new IllegalArgumentException("both jpdlFile and gpdFile must not be null and must exist");
+ }
+ }
+
+ private String getProcessName(IResource resource) {
+ String name = resource.getName();
+ if (name.startsWith(".") && name.endsWith(".gpd.xml")) {
+ return name.substring(1, name.indexOf(".gpd.xml"));
+ } else if (name.endsWith(".jpdl.xml")) {
+ return name.substring(0, name.indexOf(".jpdl.xml"));
+ } else {
+ throw new IllegalArgumentException("resource must be either a jpdlFile or gpdFile");
+ }
+ }
+
+ private boolean isJpdlFile(IResource resource) {
+ return resource.getName().endsWith(".jpdl.xml");
+ }
+
+ private boolean isGpdFile(IResource resource) {
+ String name = resource.getName();
+ return name.startsWith(".") && name.endsWith(".gpd.xml");
+ }
+
+ private IResource getGpdResource(IResource resource) {
+ if (!resource.getName().endsWith(".jpdl.xml")) {
+ throw new IllegalArgumentException("gpd resource can only be obtained for a jpdl file");
+ }
+ return resource.getParent().getFile(new Path("." + getProcessName(resource) + ".gpd.xml"));
+ }
+
+ private IResource getJpdlResource(IResource resource) {
+ if (!resource.getName().endsWith(".gpd.xml")) {
+ throw new IllegalArgumentException("jpdl resource can only be obtained for a gpd file");
+ }
+ return resource.getParent().getFile(new Path(getProcessName(resource) + ".jpdl.xml"));
+ }
+
+ public void setDestination(IContainer destination) {
+ Assert.isNotNull(destination);
+ this.destination= destination;
+ }
+
+ public RefactoringStatus checkInitialConditions(IProgressMonitor pm) throws CoreException {
+ IStatus result = null;
+ if (!resourcesToMove[0].isSynchronized(IResource.DEPTH_INFINITE)) {
+ result = new Status (
+ IStatus.ERROR,
+ ResourcesPlugin.PI_RESOURCES,
+ IResourceStatus.OUT_OF_SYNC_LOCAL,
+ "Resource " + resourcesToMove[0].getName() + "is out of sync with file system",
+ null);
+ }
+ if (!resourcesToMove[1].isSynchronized(IResource.DEPTH_INFINITE)) {
+ IStatus temp = new Status (
+ IStatus.ERROR,
+ ResourcesPlugin.PI_RESOURCES,
+ IResourceStatus.OUT_OF_SYNC_LOCAL,
+ "Resource " + resourcesToMove[1].getName() + "is out of sync with file system",
+ null);
+ if (result == null) {
+ result = temp;
+ } else {
+ MultiStatus multi = new MultiStatus(
+ ResourcesPlugin.PI_RESOURCES,
+ IResourceStatus.OUT_OF_SYNC_LOCAL,
+ "both resources are out of sync with file system",
+ null);
+ multi.add(result);
+ multi.add(temp);
+ result = multi;
+ }
+ }
+ if (result == null) {
+ result = Status.OK_STATUS;
+ }
+ return RefactoringStatus.create(result);
+ }
+
+ public RefactoringStatus checkFinalConditions(IProgressMonitor pm, CheckConditionsContext context) throws CoreException {
+ pm.beginTask("", 1);
+ try {
+ RefactoringStatus status= validateDestination(destination);
+ if (status.hasFatalError()) {
+ return status;
+ }
+ ResourceChangeChecker checker= (ResourceChangeChecker) context.getChecker(ResourceChangeChecker.class);
+ IResourceChangeDescriptionFactory deltaFactory= checker.getDeltaFactory();
+
+ for (int i= 0; i < resourcesToMove.length; i++) {
+ IResource resource= resourcesToMove[i];
+ IResource newResource= destination.findMember(resource.getName());
+ if (newResource != null) {
+ status.addWarning("'" + resourcesToMove[i].getFullPath().toString() + "' already exist. It will be replaced.");
+ deltaFactory.delete(newResource);
+ }
+ deltaFactory.move(resourcesToMove[i], destination.getFullPath());
+ }
+ return status;
+ } finally {
+ pm.done();
+ }
+ }
+
+ public RefactoringStatus validateDestination(IContainer destination) {
+ Assert.isNotNull(destination, "container is null");
+ if (destination instanceof IWorkspaceRoot)
+ return RefactoringStatus.createFatalErrorStatus("Invalid parent");
+
+ if (!destination.exists()) {
+ return RefactoringStatus.createFatalErrorStatus("Destination does not exist");
+ }
+ return new RefactoringStatus();
+ }
+
+ public Change createChange(IProgressMonitor pm) throws CoreException {
+ pm.beginTask("", resourcesToMove.length);
+ try {
+ CompositeChange compositeChange= new CompositeChange("process move");
+ compositeChange.markAsSynthetic();
+ for (int i= 0; i < resourcesToMove.length; i++) {
+ MoveResourceChange moveChange= new MoveResourceChange(resourcesToMove[i], destination);
+ compositeChange.add(moveChange);
+ }
+ return compositeChange;
+ } finally {
+ pm.done();
+ }
+ }
+
+ public IResource[] getResourcesToMove() {
+ return resourcesToMove;
+ }
+
+ public String getProcessToMove() {
+ return getProcessName(resourcesToMove[0]);
+ }
+
+ public Object[] getElements() {
+ return resourcesToMove;
+ }
+
+ public String getIdentifier() {
+ return "org.jbpm.gd.jpdl.refactoring.moveProcessProcessor";
+ }
+
+ public String getProcessorName() {
+ return "Move Process";
+ }
+
+ public boolean isApplicable() {
+ for (int i= 0; i < resourcesToMove.length; i++) {
+ if (!canMove(resourcesToMove[i])) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private static boolean canMove(IResource res) {
+ return (res instanceof IFile || res instanceof IFolder) && res.exists() && !res.isPhantom();
+ }
+
+ public RefactoringParticipant[] loadParticipants(RefactoringStatus status, SharableParticipants shared) throws CoreException {
+ return new RefactoringParticipant[0];
+ }
+
+}
\ No newline at end of file
Property changes on: branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessProcessor.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessWizard.java
===================================================================
--- branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessWizard.java (rev 0)
+++ branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessWizard.java 2010-08-17 20:33:42 UTC (rev 24226)
@@ -0,0 +1,140 @@
+package org.jbpm.gd.jpdl.refactoring;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+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.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.MoveRefactoring;
+import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
+import org.eclipse.ltk.ui.refactoring.UserInputWizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.model.BaseWorkbenchContentProvider;
+import org.eclipse.ui.model.WorkbenchLabelProvider;
+import org.eclipse.ui.model.WorkbenchViewerComparator;
+
+public class MoveProcessWizard extends RefactoringWizard {
+
+ public MoveProcessWizard(IResource resource) {
+ super(new MoveRefactoring(new MoveProcessProcessor(resource)), DIALOG_BASED_USER_INTERFACE);
+ setDefaultPageTitle("Move Process");
+ setWindowTitle("Move Process");
+ }
+
+ protected void addUserInputPages() {
+ MoveProcessProcessor processor= (MoveProcessProcessor) getRefactoring().getAdapter(MoveProcessProcessor.class);
+ addPage(new MoveProcessRefactoringConfigurationPage(processor));
+ }
+
+ private static class MoveProcessRefactoringConfigurationPage extends UserInputWizardPage {
+
+ private final MoveProcessProcessor refactoringProcessor;
+ private TreeViewer destinationField;
+
+ public MoveProcessRefactoringConfigurationPage(MoveProcessProcessor processor) {
+ super("MoveResourcesRefactoringConfigurationPage");
+ refactoringProcessor= processor;
+ }
+
+ public void createControl(Composite parent) {
+ initializeDialogUnits(parent);
+ Composite composite= new Composite(parent, SWT.NONE);
+ composite.setLayout(new GridLayout(2, false));
+ composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+ composite.setFont(parent.getFont());
+ Label label= new Label(composite, SWT.NONE);
+ IResource[] resourcesToMove= refactoringProcessor.getResourcesToMove();
+ label.setText("&Choose destination for " + refactoringProcessor.getProcessToMove() + " :");
+ label.setLayoutData(new GridData());
+ destinationField= new TreeViewer(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
+ GridData gd= new GridData(GridData.FILL, GridData.FILL, true, true, 2, 1);
+ gd.widthHint= convertWidthInCharsToPixels(40);
+ gd.heightHint= convertHeightInCharsToPixels(15);
+ destinationField.getTree().setLayoutData(gd);
+ destinationField.setLabelProvider(new WorkbenchLabelProvider());
+ destinationField.setContentProvider(new BaseWorkbenchContentProvider());
+ destinationField.setComparator(new WorkbenchViewerComparator());
+ destinationField.setInput(ResourcesPlugin.getWorkspace());
+ destinationField.addFilter(new ViewerFilter() {
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ if (element instanceof IProject) {
+ IProject project= (IProject) element;
+ return project.isAccessible();
+ } else if (element instanceof IFolder) {
+ return true;
+ }
+ return false;
+ }
+ });
+ destinationField.addSelectionChangedListener(new ISelectionChangedListener() {
+ public void selectionChanged(SelectionChangedEvent event) {
+ validatePage();
+ }
+ });
+ if (resourcesToMove.length > 0) {
+ destinationField.setSelection(new StructuredSelection(resourcesToMove[0].getParent()));
+ }
+ setPageComplete(false);
+ setControl(composite);
+ }
+
+ public void setVisible(boolean visible) {
+ if (visible) {
+ destinationField.getTree().setFocus();
+ if (getErrorMessage() != null) {
+ setErrorMessage(null);
+ }
+
+ }
+ super.setVisible(visible);
+ }
+
+ private final void validatePage() {
+ RefactoringStatus status;
+
+ IStructuredSelection selection= (IStructuredSelection) destinationField.getSelection();
+ Object firstElement= selection.getFirstElement();
+ if (firstElement instanceof IContainer) {
+ status= refactoringProcessor.validateDestination((IContainer) firstElement);
+
+ } else {
+ status= new RefactoringStatus();
+ status.addError("Select a process.");
+ }
+ setPageComplete(status);
+ }
+
+ protected boolean performFinish() {
+ initializeRefactoring();
+ storeSettings();
+ return super.performFinish();
+ }
+
+ public IWizardPage getNextPage() {
+ initializeRefactoring();
+ storeSettings();
+ return super.getNextPage();
+ }
+
+ private void storeSettings() {
+ }
+
+ private void initializeRefactoring() {
+ IContainer container= (IContainer) ((IStructuredSelection) destinationField.getSelection()).getFirstElement();
+ refactoringProcessor.setDestination(container);
+ }
+ }
+}
\ No newline at end of file
Property changes on: branches/jbosstools-3.1.x/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessWizard.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
15 years, 4 months
JBoss Tools SVN: r24225 - in trunk/jbpm/plugins/org.jbpm.gd.jpdl: src/org/jbpm/gd/jpdl/refactoring and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: koen.aers(a)jboss.com
Date: 2010-08-17 16:19:52 -0400 (Tue, 17 Aug 2010)
New Revision: 24225
Added:
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessProcessor.java
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessWizard.java
Modified:
trunk/jbpm/plugins/org.jbpm.gd.jpdl/plugin.xml
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessHandler.java
Log:
JBIDE-6650
Modified: trunk/jbpm/plugins/org.jbpm.gd.jpdl/plugin.xml
===================================================================
--- trunk/jbpm/plugins/org.jbpm.gd.jpdl/plugin.xml 2010-08-17 20:15:00 UTC (rev 24224)
+++ trunk/jbpm/plugins/org.jbpm.gd.jpdl/plugin.xml 2010-08-17 20:19:52 UTC (rev 24225)
@@ -1600,7 +1600,7 @@
</iterate>
</activeWhen>
</handler>
-<!-- <handler
+ <handler
class="org.jbpm.gd.jpdl.refactoring.MoveProcessHandler"
commandId="org.eclipse.ltk.ui.refactoring.commands.moveResources">
<activeWhen>
@@ -1615,7 +1615,7 @@
</iterate>
</activeWhen>
</handler>
- <handler
+<!-- <handler
class="org.jbpm.gd.jpdl.refactoring.DeleteProcessHandler"
commandId="org.eclipse.ltk.ui.refactoring.commands.deleteResources">
<activeWhen>
Modified: trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessHandler.java
===================================================================
--- trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessHandler.java 2010-08-17 20:15:00 UTC (rev 24224)
+++ trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessHandler.java 2010-08-17 20:19:52 UTC (rev 24225)
@@ -1,14 +1,40 @@
package org.jbpm.gd.jpdl.refactoring;
-import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.handlers.HandlerUtil;
-public class MoveProcessHandler extends AbstractHandler {
+public class MoveProcessHandler extends AbstractProcessHandler {
- public Object execute(ExecutionEvent arg0) throws ExecutionException {
- System.out.println("hello, move world");
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ Shell activeShell= HandlerUtil.getActiveShell(event);
+ ISelection sel= HandlerUtil.getCurrentSelection(event);
+ if (sel instanceof IStructuredSelection) {
+ IResource resource= getCurrentResource((IStructuredSelection) sel);
+ if (resource != null) {
+ MoveProcessWizard refactoringWizard= new MoveProcessWizard(resource);
+ RefactoringWizardOpenOperation op= new RefactoringWizardOpenOperation(refactoringWizard);
+ try {
+ op.run(activeShell, "Move Process");
+ } catch (InterruptedException e) {
+ // do nothing
+ }
+ }
+ }
return null;
}
+ private IResource getCurrentResource(IStructuredSelection sel) {
+ IResource[] resources= getSelectedResources(sel);
+ if (resources.length == 1) {
+ return resources[0];
+ }
+ return null;
+ }
}
Added: trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessProcessor.java
===================================================================
--- trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessProcessor.java (rev 0)
+++ trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessProcessor.java 2010-08-17 20:19:52 UTC (rev 24225)
@@ -0,0 +1,215 @@
+package org.jbpm.gd.jpdl.refactoring;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceStatus;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ltk.core.refactoring.Change;
+import org.eclipse.ltk.core.refactoring.CompositeChange;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
+import org.eclipse.ltk.core.refactoring.participants.MoveProcessor;
+import org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant;
+import org.eclipse.ltk.core.refactoring.participants.ResourceChangeChecker;
+import org.eclipse.ltk.core.refactoring.participants.SharableParticipants;
+import org.eclipse.ltk.core.refactoring.resource.MoveResourceChange;
+
+public class MoveProcessProcessor extends MoveProcessor {
+
+ private final IResource[] resourcesToMove;
+ private IContainer destination;
+
+ public MoveProcessProcessor(IResource resource) {
+ IResource jpdlResource = null, gpdResource = null;
+ if (resource == null || !resource.exists()) {
+ throw new IllegalArgumentException("resource must not be null and must exist");
+ }
+ if (isJpdlFile(resource)) {
+ jpdlResource = resource;
+ gpdResource = getGpdResource(resource);
+ } else if (isGpdFile(resource)) {
+ jpdlResource = getJpdlResource(resource);
+ gpdResource = resource;
+ }
+ if (jpdlResource != null && jpdlResource.exists() && gpdResource != null && gpdResource.exists()) {
+ resourcesToMove = new IResource[] { jpdlResource, gpdResource };
+ } else {
+ throw new IllegalArgumentException("both jpdlFile and gpdFile must not be null and must exist");
+ }
+ }
+
+ private String getProcessName(IResource resource) {
+ String name = resource.getName();
+ if (name.startsWith(".") && name.endsWith(".gpd.xml")) {
+ return name.substring(1, name.indexOf(".gpd.xml"));
+ } else if (name.endsWith(".jpdl.xml")) {
+ return name.substring(0, name.indexOf(".jpdl.xml"));
+ } else {
+ throw new IllegalArgumentException("resource must be either a jpdlFile or gpdFile");
+ }
+ }
+
+ private boolean isJpdlFile(IResource resource) {
+ return resource.getName().endsWith(".jpdl.xml");
+ }
+
+ private boolean isGpdFile(IResource resource) {
+ String name = resource.getName();
+ return name.startsWith(".") && name.endsWith(".gpd.xml");
+ }
+
+ private IResource getGpdResource(IResource resource) {
+ if (!resource.getName().endsWith(".jpdl.xml")) {
+ throw new IllegalArgumentException("gpd resource can only be obtained for a jpdl file");
+ }
+ return resource.getParent().getFile(new Path("." + getProcessName(resource) + ".gpd.xml"));
+ }
+
+ private IResource getJpdlResource(IResource resource) {
+ if (!resource.getName().endsWith(".gpd.xml")) {
+ throw new IllegalArgumentException("jpdl resource can only be obtained for a gpd file");
+ }
+ return resource.getParent().getFile(new Path(getProcessName(resource) + ".jpdl.xml"));
+ }
+
+ public void setDestination(IContainer destination) {
+ Assert.isNotNull(destination);
+ this.destination= destination;
+ }
+
+ public RefactoringStatus checkInitialConditions(IProgressMonitor pm) throws CoreException {
+ IStatus result = null;
+ if (!resourcesToMove[0].isSynchronized(IResource.DEPTH_INFINITE)) {
+ result = new Status (
+ IStatus.ERROR,
+ ResourcesPlugin.PI_RESOURCES,
+ IResourceStatus.OUT_OF_SYNC_LOCAL,
+ "Resource " + resourcesToMove[0].getName() + "is out of sync with file system",
+ null);
+ }
+ if (!resourcesToMove[1].isSynchronized(IResource.DEPTH_INFINITE)) {
+ IStatus temp = new Status (
+ IStatus.ERROR,
+ ResourcesPlugin.PI_RESOURCES,
+ IResourceStatus.OUT_OF_SYNC_LOCAL,
+ "Resource " + resourcesToMove[1].getName() + "is out of sync with file system",
+ null);
+ if (result == null) {
+ result = temp;
+ } else {
+ MultiStatus multi = new MultiStatus(
+ ResourcesPlugin.PI_RESOURCES,
+ IResourceStatus.OUT_OF_SYNC_LOCAL,
+ "both resources are out of sync with file system",
+ null);
+ multi.add(result);
+ multi.add(temp);
+ result = multi;
+ }
+ }
+ if (result == null) {
+ result = Status.OK_STATUS;
+ }
+ return RefactoringStatus.create(result);
+ }
+
+ public RefactoringStatus checkFinalConditions(IProgressMonitor pm, CheckConditionsContext context) throws CoreException {
+ pm.beginTask("", 1);
+ try {
+ RefactoringStatus status= validateDestination(destination);
+ if (status.hasFatalError()) {
+ return status;
+ }
+ ResourceChangeChecker checker= (ResourceChangeChecker) context.getChecker(ResourceChangeChecker.class);
+ IResourceChangeDescriptionFactory deltaFactory= checker.getDeltaFactory();
+
+ for (int i= 0; i < resourcesToMove.length; i++) {
+ IResource resource= resourcesToMove[i];
+ IResource newResource= destination.findMember(resource.getName());
+ if (newResource != null) {
+ status.addWarning("'" + resourcesToMove[i].getFullPath().toString() + "' already exist. It will be replaced.");
+ deltaFactory.delete(newResource);
+ }
+ deltaFactory.move(resourcesToMove[i], destination.getFullPath());
+ }
+ return status;
+ } finally {
+ pm.done();
+ }
+ }
+
+ public RefactoringStatus validateDestination(IContainer destination) {
+ Assert.isNotNull(destination, "container is null");
+ if (destination instanceof IWorkspaceRoot)
+ return RefactoringStatus.createFatalErrorStatus("Invalid parent");
+
+ if (!destination.exists()) {
+ return RefactoringStatus.createFatalErrorStatus("Destination does not exist");
+ }
+ return new RefactoringStatus();
+ }
+
+ public Change createChange(IProgressMonitor pm) throws CoreException {
+ pm.beginTask("", resourcesToMove.length);
+ try {
+ CompositeChange compositeChange= new CompositeChange("process move");
+ compositeChange.markAsSynthetic();
+ for (int i= 0; i < resourcesToMove.length; i++) {
+ MoveResourceChange moveChange= new MoveResourceChange(resourcesToMove[i], destination);
+ compositeChange.add(moveChange);
+ }
+ return compositeChange;
+ } finally {
+ pm.done();
+ }
+ }
+
+ public IResource[] getResourcesToMove() {
+ return resourcesToMove;
+ }
+
+ public String getProcessToMove() {
+ return getProcessName(resourcesToMove[0]);
+ }
+
+ public Object[] getElements() {
+ return resourcesToMove;
+ }
+
+ public String getIdentifier() {
+ return "org.jbpm.gd.jpdl.refactoring.moveProcessProcessor";
+ }
+
+ public String getProcessorName() {
+ return "Move Process";
+ }
+
+ public boolean isApplicable() {
+ for (int i= 0; i < resourcesToMove.length; i++) {
+ if (!canMove(resourcesToMove[i])) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private static boolean canMove(IResource res) {
+ return (res instanceof IFile || res instanceof IFolder) && res.exists() && !res.isPhantom();
+ }
+
+ public RefactoringParticipant[] loadParticipants(RefactoringStatus status, SharableParticipants shared) throws CoreException {
+ return new RefactoringParticipant[0];
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessProcessor.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessWizard.java
===================================================================
--- trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessWizard.java (rev 0)
+++ trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessWizard.java 2010-08-17 20:19:52 UTC (rev 24225)
@@ -0,0 +1,140 @@
+package org.jbpm.gd.jpdl.refactoring;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+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.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.ltk.core.refactoring.RefactoringStatus;
+import org.eclipse.ltk.core.refactoring.participants.MoveRefactoring;
+import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
+import org.eclipse.ltk.ui.refactoring.UserInputWizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.model.BaseWorkbenchContentProvider;
+import org.eclipse.ui.model.WorkbenchLabelProvider;
+import org.eclipse.ui.model.WorkbenchViewerComparator;
+
+public class MoveProcessWizard extends RefactoringWizard {
+
+ public MoveProcessWizard(IResource resource) {
+ super(new MoveRefactoring(new MoveProcessProcessor(resource)), DIALOG_BASED_USER_INTERFACE);
+ setDefaultPageTitle("Move Process");
+ setWindowTitle("Move Process");
+ }
+
+ protected void addUserInputPages() {
+ MoveProcessProcessor processor= (MoveProcessProcessor) getRefactoring().getAdapter(MoveProcessProcessor.class);
+ addPage(new MoveProcessRefactoringConfigurationPage(processor));
+ }
+
+ private static class MoveProcessRefactoringConfigurationPage extends UserInputWizardPage {
+
+ private final MoveProcessProcessor refactoringProcessor;
+ private TreeViewer destinationField;
+
+ public MoveProcessRefactoringConfigurationPage(MoveProcessProcessor processor) {
+ super("MoveResourcesRefactoringConfigurationPage");
+ refactoringProcessor= processor;
+ }
+
+ public void createControl(Composite parent) {
+ initializeDialogUnits(parent);
+ Composite composite= new Composite(parent, SWT.NONE);
+ composite.setLayout(new GridLayout(2, false));
+ composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+ composite.setFont(parent.getFont());
+ Label label= new Label(composite, SWT.NONE);
+ IResource[] resourcesToMove= refactoringProcessor.getResourcesToMove();
+ label.setText("&Choose destination for " + refactoringProcessor.getProcessToMove() + " :");
+ label.setLayoutData(new GridData());
+ destinationField= new TreeViewer(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
+ GridData gd= new GridData(GridData.FILL, GridData.FILL, true, true, 2, 1);
+ gd.widthHint= convertWidthInCharsToPixels(40);
+ gd.heightHint= convertHeightInCharsToPixels(15);
+ destinationField.getTree().setLayoutData(gd);
+ destinationField.setLabelProvider(new WorkbenchLabelProvider());
+ destinationField.setContentProvider(new BaseWorkbenchContentProvider());
+ destinationField.setComparator(new WorkbenchViewerComparator());
+ destinationField.setInput(ResourcesPlugin.getWorkspace());
+ destinationField.addFilter(new ViewerFilter() {
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ if (element instanceof IProject) {
+ IProject project= (IProject) element;
+ return project.isAccessible();
+ } else if (element instanceof IFolder) {
+ return true;
+ }
+ return false;
+ }
+ });
+ destinationField.addSelectionChangedListener(new ISelectionChangedListener() {
+ public void selectionChanged(SelectionChangedEvent event) {
+ validatePage();
+ }
+ });
+ if (resourcesToMove.length > 0) {
+ destinationField.setSelection(new StructuredSelection(resourcesToMove[0].getParent()));
+ }
+ setPageComplete(false);
+ setControl(composite);
+ }
+
+ public void setVisible(boolean visible) {
+ if (visible) {
+ destinationField.getTree().setFocus();
+ if (getErrorMessage() != null) {
+ setErrorMessage(null);
+ }
+
+ }
+ super.setVisible(visible);
+ }
+
+ private final void validatePage() {
+ RefactoringStatus status;
+
+ IStructuredSelection selection= (IStructuredSelection) destinationField.getSelection();
+ Object firstElement= selection.getFirstElement();
+ if (firstElement instanceof IContainer) {
+ status= refactoringProcessor.validateDestination((IContainer) firstElement);
+
+ } else {
+ status= new RefactoringStatus();
+ status.addError("Select a process.");
+ }
+ setPageComplete(status);
+ }
+
+ protected boolean performFinish() {
+ initializeRefactoring();
+ storeSettings();
+ return super.performFinish();
+ }
+
+ public IWizardPage getNextPage() {
+ initializeRefactoring();
+ storeSettings();
+ return super.getNextPage();
+ }
+
+ private void storeSettings() {
+ }
+
+ private void initializeRefactoring() {
+ IContainer container= (IContainer) ((IStructuredSelection) destinationField.getSelection()).getFirstElement();
+ refactoringProcessor.setDestination(container);
+ }
+ }
+}
\ No newline at end of file
Property changes on: trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessWizard.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
15 years, 4 months
JBoss Tools SVN: r24224 - trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring.
by jbosstools-commits@lists.jboss.org
Author: koen.aers(a)jboss.com
Date: 2010-08-17 16:15:00 -0400 (Tue, 17 Aug 2010)
New Revision: 24224
Modified:
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/RenameProcessHandler.java
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/RenameProcessProcessor.java
Log:
cleanup
Modified: trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/RenameProcessHandler.java
===================================================================
--- trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/RenameProcessHandler.java 2010-08-17 20:14:26 UTC (rev 24223)
+++ trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/RenameProcessHandler.java 2010-08-17 20:15:00 UTC (rev 24224)
@@ -11,6 +11,7 @@
public class RenameProcessHandler extends AbstractProcessHandler {
+ @Override
public Object execute(ExecutionEvent event) throws ExecutionException {
Shell activeShell= HandlerUtil.getActiveShell(event);
ISelection sel= HandlerUtil.getCurrentSelection(event);
Modified: trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/RenameProcessProcessor.java
===================================================================
--- trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/RenameProcessProcessor.java 2010-08-17 20:14:26 UTC (rev 24223)
+++ trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/RenameProcessProcessor.java 2010-08-17 20:15:00 UTC (rev 24224)
@@ -32,7 +32,7 @@
public RenameProcessProcessor(IResource resource) {
if (resource == null || !resource.exists()) {
- throw new IllegalArgumentException("resource must not be null and must exist"); //$NON-NLS-1$
+ throw new IllegalArgumentException("resource must not be null and must exist");
}
if (isJpdlFile(resource)) {
15 years, 4 months
JBoss Tools SVN: r24223 - in trunk/ws/plugins: org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: bfitzpat
Date: 2010-08-17 16:14:26 -0400 (Tue, 17 Aug 2010)
New Revision: 24223
Modified:
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboss/tools/ws/creation/core/commands/RSServiceSampleCreationCommand.java
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboss/tools/ws/creation/core/commands/ServiceSampleCreationCommand.java
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/JBossWSUIPlugin.java
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/wizards/JBossRSGenerateWizard.java
trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/wizards/JBossWSGenerateWizard.java
Log:
OPEN - issue JBIDE-6829: Created file is not opened in the editor
https://jira.jboss.org/browse/JBIDE-6829
Modified: trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboss/tools/ws/creation/core/commands/RSServiceSampleCreationCommand.java
===================================================================
--- trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboss/tools/ws/creation/core/commands/RSServiceSampleCreationCommand.java 2010-08-17 19:19:33 UTC (rev 24222)
+++ trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboss/tools/ws/creation/core/commands/RSServiceSampleCreationCommand.java 2010-08-17 20:14:26 UTC (rev 24223)
@@ -11,6 +11,7 @@
package org.jboss.tools.ws.creation.core.commands;
import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -36,6 +37,8 @@
public class RSServiceSampleCreationCommand extends AbstractDataModelOperation {
private ServiceModel model;
+ private IResource resource;
+
public static final String LINE_SEPARATOR = System
.getProperty("line.separator"); //$NON-NLS-1$
@@ -43,6 +46,10 @@
this.model = model;
}
+ public IResource getResource() {
+ return this.resource;
+ }
+
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
@@ -56,11 +63,15 @@
.errorStatus(JBossWSCreationCoreMessages.Error_Create_Client_Sample);
}
- createRESTAnnotatedJavaClass (model.getCustomPackage(), JBossWSCreationUtils
+ ICompilationUnit rsAnnotatedClass =
+ createRESTAnnotatedJavaClass (model.getCustomPackage(), JBossWSCreationUtils
.classNameFromQualifiedName(model.getServiceClasses().get(0)),
project);
createRESTApplicationClass (model.getCustomPackage(), model.getApplicationClassName(),
project);
+ if (rsAnnotatedClass != null) {
+ this.resource = rsAnnotatedClass.getResource();
+ }
return null;
}
Modified: trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboss/tools/ws/creation/core/commands/ServiceSampleCreationCommand.java
===================================================================
--- trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboss/tools/ws/creation/core/commands/ServiceSampleCreationCommand.java 2010-08-17 19:19:33 UTC (rev 24222)
+++ trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboss/tools/ws/creation/core/commands/ServiceSampleCreationCommand.java 2010-08-17 20:14:26 UTC (rev 24223)
@@ -1,6 +1,7 @@
package org.jboss.tools.ws.creation.core.commands;
import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -22,12 +23,18 @@
public class ServiceSampleCreationCommand extends AbstractDataModelOperation {
private ServiceModel model;
+ private IResource resource;
+
public static final String LINE_SEPARATOR = System
.getProperty("line.separator"); //$NON-NLS-1$
public ServiceSampleCreationCommand(ServiceModel model) {
this.model = model;
}
+
+ public IResource getResource() {
+ return this.resource;
+ }
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
@@ -42,9 +49,13 @@
.errorStatus(JBossWSCreationCoreMessages.Error_Create_Client_Sample);
}
- createJavaClass(model.getCustomPackage(), JBossWSCreationUtils
+ ICompilationUnit createdClass =
+ createJavaClass(model.getCustomPackage(), JBossWSCreationUtils
.classNameFromQualifiedName(model.getServiceClasses().get(0)),
project);
+ if (createdClass != null) {
+ this.resource = createdClass.getResource();
+ }
return null;
}
Modified: trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/JBossWSUIPlugin.java
===================================================================
--- trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/JBossWSUIPlugin.java 2010-08-17 19:19:33 UTC (rev 24222)
+++ trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/JBossWSUIPlugin.java 2010-08-17 20:14:26 UTC (rev 24223)
@@ -13,6 +13,8 @@
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.jboss.tools.ws.ui.messages.JBossWSUIMessages;
import org.osgi.framework.BundleContext;
@@ -69,4 +71,26 @@
public static void log(Throwable ex) {
plugin.getLog().log(new Status(Status.ERROR, PLUGIN_ID, Status.OK, JBossWSUIMessages.JBossWS_UI_PLUGIN_NO_MESSAGES, ex));
}
+
+ private IWorkbenchPage internalGetActivePage() {
+ IWorkbenchWindow window= getWorkbench().getActiveWorkbenchWindow();
+ if (window == null)
+ return null;
+ return window.getActivePage();
+ }
+
+ private IWorkbenchWindow internalGetActiveWorkbenchWindow() {
+ IWorkbenchWindow window= getWorkbench().getActiveWorkbenchWindow();
+ if (window == null)
+ return null;
+ return window;
+ }
+
+ public static IWorkbenchPage getActivePage() {
+ return getDefault().internalGetActivePage();
+ }
+
+ public static IWorkbenchWindow getActiveWorkbenchWindow() {
+ return getDefault().internalGetActiveWorkbenchWindow();
+ }
}
Modified: trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/wizards/JBossRSGenerateWizard.java
===================================================================
--- trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/wizards/JBossRSGenerateWizard.java 2010-08-17 19:19:33 UTC (rev 24222)
+++ trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/wizards/JBossRSGenerateWizard.java 2010-08-17 20:14:26 UTC (rev 24223)
@@ -15,6 +15,7 @@
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
@@ -24,8 +25,14 @@
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
import org.jboss.tools.ws.creation.core.commands.AddRestEasyJarsCommand;
import org.jboss.tools.ws.creation.core.commands.RSMergeWebXMLCommand;
import org.jboss.tools.ws.creation.core.commands.RSServiceSampleCreationCommand;
@@ -40,6 +47,9 @@
*/
public class JBossRSGenerateWizard extends Wizard implements INewWizard {
+ private static final String JDT_EDITOR =
+ "org.eclipse.jdt.ui.CompilationUnitEditor"; //$NON-NLS-1$
+
String NAMEDEFAULT = "MyRESTApplication"; //$NON-NLS-1$
String PACKAGEDEFAULT = "org.jboss.samples.rs.webservices"; //$NON-NLS-1$
String CLASSDEFAULT = "HelloWorldResource"; //$NON-NLS-1$
@@ -115,8 +125,13 @@
}
try {
new AddRestEasyJarsCommand(model).execute(null, null);
- new RSServiceSampleCreationCommand(model).execute(null, null);
+ RSServiceSampleCreationCommand createCommand =
+ new RSServiceSampleCreationCommand(model);
+ createCommand.execute(null, null);
getProject().refreshLocal(IProject.DEPTH_INFINITE, new NullProgressMonitor());
+ if (createCommand.getResource() != null && createCommand.getResource() instanceof IFile) {
+ openResource((IFile) createCommand.getResource());
+ }
} catch (ExecutionException e) {
JBossWSUIPlugin.log(e);
MessageDialog
@@ -242,4 +257,32 @@
public IFile getWebFile() {
return webFile;
}
+
+ protected void openResource(final IFile resource) {
+ if (resource.getType() != IResource.FILE) {
+ return;
+ }
+
+ IWorkbenchWindow window = JBossWSUIPlugin.getActiveWorkbenchWindow();
+ if (window == null) {
+ return;
+ }
+
+ final IWorkbenchPage activePage = window.getActivePage();
+ if (activePage != null) {
+ final Display display = getShell().getDisplay();
+ display.asyncExec(new Runnable() {
+ public void run() {
+ try {
+ IDE.openEditor(activePage, resource, JDT_EDITOR, true);
+ } catch (PartInitException e) {
+ JBossWSUIPlugin.log(e);
+ }
+ }
+ });
+ BasicNewResourceWizard.selectAndReveal(resource, activePage
+ .getWorkbenchWindow());
+ }
+ }
+
}
Modified: trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/wizards/JBossWSGenerateWizard.java
===================================================================
--- trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/wizards/JBossWSGenerateWizard.java 2010-08-17 19:19:33 UTC (rev 24222)
+++ trunk/ws/plugins/org.jboss.tools.ws.ui/src/org/jboss/tools/ws/ui/wizards/JBossWSGenerateWizard.java 2010-08-17 20:14:26 UTC (rev 24223)
@@ -15,6 +15,7 @@
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
@@ -24,8 +25,14 @@
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
import org.jboss.tools.ws.creation.core.commands.MergeWebXMLCommand;
import org.jboss.tools.ws.creation.core.commands.ServiceSampleCreationCommand;
import org.jboss.tools.ws.creation.core.data.ServiceModel;
@@ -35,6 +42,9 @@
public class JBossWSGenerateWizard extends Wizard implements INewWizard {
+ private static final String JDT_EDITOR =
+ "org.eclipse.jdt.ui.CompilationUnitEditor"; //$NON-NLS-1$
+
String NAMEDEFAULT = "HelloWorld"; //$NON-NLS-1$
String PACKAGEDEFAULT = "org.jboss.samples.webservices"; //$NON-NLS-1$
String CLASSDEFAULT = "HelloWorld"; //$NON-NLS-1$
@@ -104,8 +114,13 @@
return false;
}
try {
- new ServiceSampleCreationCommand(model).execute(null, null);
+ ServiceSampleCreationCommand cmd =
+ new ServiceSampleCreationCommand(model);
+ cmd.execute(null, null);
getProject().refreshLocal(IProject.DEPTH_INFINITE, new NullProgressMonitor());
+ if (cmd.getResource() != null && cmd.getResource() instanceof IFile) {
+ openResource((IFile) cmd.getResource());
+ }
} catch (ExecutionException e) {
JBossWSUIPlugin.log(e);
MessageDialog
@@ -223,4 +238,32 @@
public IFile getWebFile() {
return webFile;
}
+
+ protected void openResource(final IFile resource) {
+ if (resource.getType() != IResource.FILE) {
+ return;
+ }
+
+ IWorkbenchWindow window = JBossWSUIPlugin.getActiveWorkbenchWindow();
+ if (window == null) {
+ return;
+ }
+
+ final IWorkbenchPage activePage = window.getActivePage();
+ if (activePage != null) {
+ final Display display = getShell().getDisplay();
+ display.asyncExec(new Runnable() {
+ public void run() {
+ try {
+ IDE.openEditor(activePage, resource, JDT_EDITOR, true);
+ } catch (PartInitException e) {
+ JBossWSUIPlugin.log(e);
+ }
+ }
+ });
+ BasicNewResourceWizard.selectAndReveal(resource, activePage
+ .getWorkbenchWindow());
+ }
+ }
+
}
15 years, 4 months
JBoss Tools SVN: r24222 - trunk/gwt/features/org.jboss.tools.gwt.feature.
by jbosstools-commits@lists.jboss.org
Author: dgolovin
Date: 2010-08-17 15:19:33 -0400 (Tue, 17 Aug 2010)
New Revision: 24222
Modified:
trunk/gwt/features/org.jboss.tools.gwt.feature/pom.xml
Log:
version updated for gwt feature to be the same as in plugin manifest
Modified: trunk/gwt/features/org.jboss.tools.gwt.feature/pom.xml
===================================================================
--- trunk/gwt/features/org.jboss.tools.gwt.feature/pom.xml 2010-08-17 18:48:03 UTC (rev 24221)
+++ trunk/gwt/features/org.jboss.tools.gwt.feature/pom.xml 2010-08-17 19:19:33 UTC (rev 24222)
@@ -9,6 +9,6 @@
</parent>
<groupId>org.jboss.tools.gwt.features</groupId>
<artifactId>org.jboss.tools.gwt.feature</artifactId>
- <version>1.1.0-SNAPSHOT</version>
+ <version>1.0.0-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
</project>
15 years, 4 months
JBoss Tools SVN: r24221 - trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring.
by jbosstools-commits@lists.jboss.org
Author: dgolovin
Date: 2010-08-17 14:48:03 -0400 (Tue, 17 Aug 2010)
New Revision: 24221
Modified:
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/DeleteProcessHandler.java
Log:
@Override annotation removed to fix tycho build
Modified: trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/DeleteProcessHandler.java
===================================================================
--- trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/DeleteProcessHandler.java 2010-08-17 18:47:37 UTC (rev 24220)
+++ trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/DeleteProcessHandler.java 2010-08-17 18:48:03 UTC (rev 24221)
@@ -6,7 +6,6 @@
public class DeleteProcessHandler extends AbstractHandler {
- @Override
public Object execute(ExecutionEvent arg0) throws ExecutionException {
System.out.println("hello, delete world");
return null;
15 years, 4 months
JBoss Tools SVN: r24220 - trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring.
by jbosstools-commits@lists.jboss.org
Author: dgolovin
Date: 2010-08-17 14:47:37 -0400 (Tue, 17 Aug 2010)
New Revision: 24220
Modified:
trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessHandler.java
Log:
@Override annotation removed to fix tycho build
Modified: trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessHandler.java
===================================================================
--- trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessHandler.java 2010-08-17 17:24:57 UTC (rev 24219)
+++ trunk/jbpm/plugins/org.jbpm.gd.jpdl/src/org/jbpm/gd/jpdl/refactoring/MoveProcessHandler.java 2010-08-17 18:47:37 UTC (rev 24220)
@@ -6,7 +6,6 @@
public class MoveProcessHandler extends AbstractHandler {
- @Override
public Object execute(ExecutionEvent arg0) throws ExecutionException {
System.out.println("hello, move world");
return null;
15 years, 4 months
JBoss Tools SVN: r24219 - trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/validation.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2010-08-17 13:24:57 -0400 (Tue, 17 Aug 2010)
New Revision: 24219
Modified:
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/validation/SeamProjectPropertyValidatorWrapper.java
Log:
Fixed compilation problems
Modified: trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/validation/SeamProjectPropertyValidatorWrapper.java
===================================================================
--- trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/validation/SeamProjectPropertyValidatorWrapper.java 2010-08-17 17:20:36 UTC (rev 24218)
+++ trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/validation/SeamProjectPropertyValidatorWrapper.java 2010-08-17 17:24:57 UTC (rev 24219)
@@ -66,7 +66,6 @@
lineNumber);
}
- @Override
public IStatus validate(Set<IFile> changedFiles, IProject project,
ContextValidationHelper validationHelper, ValidatorManager manager,
IReporter reporter) throws ValidationException {
@@ -97,7 +96,6 @@
return validateInJob(validationHelper, reporter);
}
- @Override
public IStatus validateAll(IProject project,
ContextValidationHelper validationHelper, ValidatorManager manager,
IReporter reporter) throws ValidationException {
@@ -105,23 +103,19 @@
return null;
}
- @Override
public String getId() {
return "id";
}
- @Override
public IValidatingProjectSet getValidatingProjects(IProject project) {
// TODO Auto-generated method stub
return null;
}
- @Override
public boolean shouldValidate(IProject project) {
return true;
}
- @Override
public boolean isEnabled(IProject project) {
return true;
}
@@ -130,7 +124,6 @@
return this;
}
- @Override
public void init(
IProject project,
ContextValidationHelper validationHelper,
@@ -141,7 +134,6 @@
errorManager.init(project, vh, manager, reporter);
}
- @Override
public IMarker addError(String message, String preferenceKey,
String[] messageArguments, ITextSourceReference location,
IResource target) {
@@ -150,7 +142,6 @@
return marker;
}
- @Override
public IMarker addError(String message, String preferenceKey,
String[] messageArguments, IResource target) {
IMarker marker = errorManager.addError(message, preferenceKey, messageArguments, target);
@@ -158,7 +149,6 @@
return marker;
}
- @Override
public IMarker addError(String message, String preferenceKey,
ITextSourceReference location, IResource target) {
IMarker marker = errorManager.addError(message, preferenceKey, location, target);
@@ -166,7 +156,6 @@
return marker;
}
- @Override
public IMarker addError(String message, String preferenceKey,
String[] messageArguments, int length, int offset, IResource target) {
IMarker marker = errorManager.addError(message, preferenceKey, messageArguments, length, offset, target);
@@ -174,7 +163,6 @@
return marker;
}
- @Override
public IMarker addError(String message, int severity,
String[] messageArguments, int length, int offset, IResource target) {
IMarker marker = errorManager.addError(message, severity, messageArguments, length, offset, target);
@@ -182,22 +170,18 @@
return marker;
}
- @Override
public void displaySubtask(String message) {
errorManager.displaySubtask(message);
}
- @Override
public void displaySubtask(String message, String[] messageArguments) {
errorManager.displaySubtask(message, messageArguments);
}
- @Override
public void removeMessagesFromResources(Set<IResource> resources) {
errorManager.removeMessagesFromResources(resources);
}
- @Override
public void removeAllMessagesFromResource(IResource resource) {
errorManager.removeAllMessagesFromResource(resource);
}
15 years, 4 months
JBoss Tools SVN: r24218 - in trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core: src/org/jboss/tools/deltacloud/core and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: jjohnstn
Date: 2010-08-17 13:20:36 -0400 (Tue, 17 Aug 2010)
New Revision: 24218
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloud.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClient.java
Log:
2010-08-17 Jeff Johnston <jjohnstn(a)redhat.com>
* src/org/jboss/tools/deltacloud/core/client/DeltaCloudClient.java (createInstance): New
API that takes a memory and storage setting for the hardware profile.
* src/org/jboss/tools/deltacloud/core/DeltaCloud.java (createInstance): Change API to
accept memory and storage settings.
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog 2010-08-17 17:19:21 UTC (rev 24217)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog 2010-08-17 17:20:36 UTC (rev 24218)
@@ -1,3 +1,10 @@
+2010-08-17 Jeff Johnston <jjohnstn(a)redhat.com>
+
+ * src/org/jboss/tools/deltacloud/core/client/DeltaCloudClient.java (createInstance): New
+ API that takes a memory and storage setting for the hardware profile.
+ * src/org/jboss/tools/deltacloud/core/DeltaCloud.java (createInstance): Change API to
+ accept memory and storage settings.
+
2010-08-16 Jeff Johnston <jjohnstn(a)redhat.com>
* src/org/jboss/tools/deltacloud/core/client/DeltaCloudClient.java (buildHardwareProfile): Remove
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloud.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloud.java 2010-08-17 17:19:21 UTC (rev 24217)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloud.java 2010-08-17 17:20:36 UTC (rev 24218)
@@ -226,9 +226,10 @@
return realms.toArray(new DeltaCloudRealm[realms.size()]);
}
- public DeltaCloudInstance createInstance(String name, String imageId, String realmId, String profileId) throws DeltaCloudException {
+ public DeltaCloudInstance createInstance(String name, String imageId, String realmId, String profileId,
+ String memory, String storage) throws DeltaCloudException {
try {
- Instance instance = client.createInstance(imageId, profileId, realmId, name);
+ Instance instance = client.createInstance(imageId, profileId, realmId, name, memory, storage);
if (instance != null) {
DeltaCloudInstance newInstance = new DeltaCloudInstance(instance);
instances.add(newInstance);
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClient.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClient.java 2010-08-17 17:19:21 UTC (rev 24217)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClient.java 2010-08-17 17:20:36 UTC (rev 24218)
@@ -159,11 +159,21 @@
String query = "?image_id=" + imageId;
return buildInstance(sendRequest(DCNS.INSTANCES + query, RequestType.POST));
}
-
+
@Override
public Instance createInstance(String imageId, String profileId, String realmId, String name) throws DeltaCloudClientException
{
- String query = "?image_id=" + imageId + "&hardware_profile_id=" + profileId + "&realm_id=" + realmId + "&name=" + name + "&commit=create";
+ return createInstance(imageId, profileId, realmId, name, null, null);
+ }
+
+ public Instance createInstance(String imageId, String profileId, String realmId, String name, String memory, String storage) throws DeltaCloudClientException
+ {
+ String query = "?image_id=" + imageId + "&hwp_id=" + profileId + "&realm_id=" + realmId + "&name=" + name;
+ if (memory != null)
+ query += "&hwp_memory=" + memory;
+ if (storage != null)
+ query += "&hwp_storage=" + storage;
+ query += "&commit=create";
return buildInstance(sendRequest(DCNS.INSTANCES + query, RequestType.POST));
}
15 years, 4 months
JBoss Tools SVN: r24217 - in trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui: src/org/jboss/tools/deltacloud/ui/views and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: jjohnstn
Date: 2010-08-17 13:19:21 -0400 (Tue, 17 Aug 2010)
New Revision: 24217
Added:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageComparator.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageView.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageViewLabelAndContentProvider.java
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/plugin.xml
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVInstancesCategoryElement.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVMessages.properties
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVRootElement.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/DeltaCloudView.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/InstanceView.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstance.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ProfileComposite.java
Log:
2010-08-17 Jeff Johnston <jjohnstn(a)redhat.com>
* src/org/jboss/tools/deltacloud/ui/views/ImageComparator.java: New file.
* src/org/jboss/tools/deltacloud/ui/views/ImageView.java: New file.
* src/org/jboss/tools/deltacloud/ui/views/ImageViewLabelAndContentProvider.java: New file.
* plugin.xml: Add new Image view.
* src/org/jboss/tools/deltacloud/ui/views/CVInstancesCategoryElement.java (finalize): New override
to ensure this class isn't registered as a listener.
* src/org/jboss/tools/deltacloud/ui/views/CVMessages.properties: Add destroy messages.
* src/org/jboss/tools/deltacloud/ui/views/CVRootElement.java: (finalize): Remove this
class as a cloud listener.
* src/org/jboss/tools/deltacloud/ui/views/DeltaCloudView.java (dispose): Remove this class
as a cloud listener.
* src/org/jboss/tools/deltacloud/ui/views/InstanceView.java (dispose): Remove this class
as an instance and cloud listener.
(createPartControl): Fix listener management.
* src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstance.java (performFinish): Get
any hardware memory or storage settings and pass them to the new DeltaCloud createInstance
API.
* src/org/jboss/tools/internal/deltacloud/ui/wizards/ProfileComposite.java (getMemory): Don't
add in decimal point to value as widget does this automatically.
(getStorage): Ditto.
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog 2010-08-17 14:46:11 UTC (rev 24216)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog 2010-08-17 17:19:21 UTC (rev 24217)
@@ -1,3 +1,26 @@
+2010-08-17 Jeff Johnston <jjohnstn(a)redhat.com>
+
+ * src/org/jboss/tools/deltacloud/ui/views/ImageComparator.java: New file.
+ * src/org/jboss/tools/deltacloud/ui/views/ImageView.java: New file.
+ * src/org/jboss/tools/deltacloud/ui/views/ImageViewLabelAndContentProvider.java: New file.
+ * plugin.xml: Add new Image view.
+ * src/org/jboss/tools/deltacloud/ui/views/CVInstancesCategoryElement.java (finalize): New override
+ to ensure this class isn't registered as a listener.
+ * src/org/jboss/tools/deltacloud/ui/views/CVMessages.properties: Add destroy messages.
+ * src/org/jboss/tools/deltacloud/ui/views/CVRootElement.java: (finalize): Remove this
+ class as a cloud listener.
+ * src/org/jboss/tools/deltacloud/ui/views/DeltaCloudView.java (dispose): Remove this class
+ as a cloud listener.
+ * src/org/jboss/tools/deltacloud/ui/views/InstanceView.java (dispose): Remove this class
+ as an instance and cloud listener.
+ (createPartControl): Fix listener management.
+ * src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstance.java (performFinish): Get
+ any hardware memory or storage settings and pass them to the new DeltaCloud createInstance
+ API.
+ * src/org/jboss/tools/internal/deltacloud/ui/wizards/ProfileComposite.java (getMemory): Don't
+ add in decimal point to value as widget does this automatically.
+ (getStorage): Ditto.
+
2010-08-16 Jeff Johnston <jjohnstn(a)redhat.com>
* src/org/jboss/tools/internal/deltacloud/ui/wizards/NewCloudConnectionPage.java: Fix warning.
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/plugin.xml
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/plugin.xml 2010-08-17 14:46:11 UTC (rev 24216)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/plugin.xml 2010-08-17 17:19:21 UTC (rev 24217)
@@ -22,6 +22,14 @@
id="org.jboss.tools.deltacloud.ui.views.InstanceView"
name="%InstanceViewer.name">
</view>
+ <view
+ category="org.jboss.tools.deltacloud.ui"
+ class="org.jboss.tools.deltacloud.ui.views.ImageView"
+ icon="icons/delta.gif"
+ id="org.jboss.tools.deltacloud.ui.views.ImageView"
+ name="%ImageViewer.name"
+ restorable="true">
+ </view>
</extension>
<extension
point="org.eclipse.help.contexts">
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVInstancesCategoryElement.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVInstancesCategoryElement.java 2010-08-17 14:46:11 UTC (rev 24216)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVInstancesCategoryElement.java 2010-08-17 17:19:21 UTC (rev 24217)
@@ -20,6 +20,12 @@
this.category = this;
}
+ protected void finalize() throws Throwable {
+ DeltaCloud cloud = (DeltaCloud)getElement();
+ cloud.removeInstanceListListener(this);
+ super.finalize();
+ }
+
@Override
public Object[] getChildren() {
if (!initialized) {
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVMessages.properties
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVMessages.properties 2010-08-17 14:46:11 UTC (rev 24216)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVMessages.properties 2010-08-17 17:19:21 UTC (rev 24217)
@@ -34,8 +34,12 @@
StoppingInstance.msg=Stopping Instance: {0}
RebootingInstance.title=Rebooting Instance
RebootingInstance.msg=Rebooting Instance: {0}
+DestroyingInstance.title=Destroying Instance
+DestroyingInstance.msg=Destroying Instance: {0}
NAME=Name
ID=ID
HOSTNAME=Public Hostname
-STATUS=State
\ No newline at end of file
+STATUS=State
+ARCH=Architecture
+DESC=Description
\ No newline at end of file
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVRootElement.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVRootElement.java 2010-08-17 14:46:11 UTC (rev 24216)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVRootElement.java 2010-08-17 17:19:21 UTC (rev 24217)
@@ -41,6 +41,11 @@
}
@Override
+ protected void finalize() throws Throwable {
+ DeltaCloudManager.getDefault().removeCloudManagerListener(this);
+ super.finalize();
+ }
+
public void changeEvent(int type) {
DeltaCloudManager m = DeltaCloudManager.getDefault();
m.removeCloudManagerListener(this);
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/DeltaCloudView.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/DeltaCloudView.java 2010-08-17 14:46:11 UTC (rev 24216)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/DeltaCloudView.java 2010-08-17 17:19:21 UTC (rev 24217)
@@ -1,6 +1,5 @@
package org.jboss.tools.deltacloud.ui.views;
-
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
@@ -84,6 +83,12 @@
DeltaCloudManager.getDefault().addCloudManagerListener(this);
}
+ @Override
+ public void dispose() {
+ DeltaCloudManager.getDefault().removeCloudManagerListener(this);
+ super.dispose();
+ }
+
private void hookSelection() {
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
Added: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageComparator.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageComparator.java (rev 0)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageComparator.java 2010-08-17 17:19:21 UTC (rev 24217)
@@ -0,0 +1,49 @@
+package org.jboss.tools.deltacloud.ui.views;
+
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerComparator;
+import org.jboss.tools.deltacloud.core.DeltaCloudImage;
+
+public class ImageComparator extends ViewerComparator {
+
+ private final static int UP = 1;
+
+ private int column;
+ private int direction;
+
+ public ImageComparator(int column) {
+ this.column = column;
+ this.direction = UP;
+ }
+
+ public void setColumn(int newColumn) {
+ if (column != newColumn)
+ direction = UP;
+ column = newColumn;
+ }
+
+ public int getColumn() {
+ return column;
+ }
+
+ public void reverseDirection() {
+ direction *= -1;
+ }
+
+ @Override
+ public int compare(Viewer viewer, Object e1, Object e2) {
+ if (!(e1 instanceof DeltaCloudImage) || !(e2 instanceof DeltaCloudImage))
+ return 0;
+
+ int tmp = compareByColumn(viewer, (DeltaCloudImage)e1, (DeltaCloudImage)e2);
+ return tmp * direction;
+ }
+
+ private int compareByColumn(Viewer viewer, DeltaCloudImage e1, DeltaCloudImage e2) {
+ ImageViewLabelAndContentProvider provider = (ImageViewLabelAndContentProvider)((TableViewer)viewer).getContentProvider();
+ String s1 = provider.getColumnText(e1, column);
+ String s2 = provider.getColumnText(e2, column);
+ return s1.compareToIgnoreCase(s2);
+ }
+}
Added: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageView.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageView.java (rev 0)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageView.java 2010-08-17 17:19:21 UTC (rev 24217)
@@ -0,0 +1,364 @@
+package org.jboss.tools.deltacloud.ui.views;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.layout.TableColumnLayout;
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+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.TableViewer;
+import org.eclipse.jface.wizard.IWizard;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.VerifyEvent;
+import org.eclipse.swt.events.VerifyListener;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.ViewPart;
+import org.jboss.tools.deltacloud.core.DeltaCloud;
+import org.jboss.tools.deltacloud.core.DeltaCloudImage;
+import org.jboss.tools.deltacloud.core.DeltaCloudManager;
+import org.jboss.tools.deltacloud.core.ICloudManagerListener;
+import org.jboss.tools.deltacloud.core.IImageListListener;
+import org.jboss.tools.internal.deltacloud.ui.wizards.NewInstance;
+
+public class ImageView extends ViewPart implements ICloudManagerListener, IImageListListener {
+
+ private final static String CLOUD_SELECTOR_LABEL = "CloudSelector.label"; //$NON-NLS-1$
+ private final static String LAUNCH_INSTANCE = "CreateInstance.label"; //$NON-NLS-1$
+
+ private TableViewer viewer;
+ private Composite container;
+ private Combo cloudSelector;
+ @SuppressWarnings("unused")
+ private DeltaCloudImage selectedElement;
+
+ private DeltaCloud[] clouds;
+ private DeltaCloud currCloud;
+
+ private ImageViewLabelAndContentProvider contentProvider;
+
+ private Action doubleClickAction;
+ private Action launchAction;
+
+ private ImageView parentView;
+
+ public ImageView() {
+ parentView = this;
+ }
+
+ private ModifyListener cloudModifyListener = new ModifyListener() {
+
+ @Override
+ public void modifyText(ModifyEvent e) {
+ int index = cloudSelector.getSelectionIndex();
+ currCloud = clouds[index];
+ Display.getCurrent().asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ // TODO Auto-generated method stub
+ currCloud.removeImageListListener(parentView);
+ viewer.setInput(currCloud);
+ currCloud.addImageListListener(parentView);
+ viewer.refresh();
+
+ }
+
+ });
+ }
+
+ };
+
+ private class ColumnListener extends SelectionAdapter {
+
+ private int column;
+ private TableViewer viewer;
+
+ public ColumnListener(int column, TableViewer viewer) {
+ this.column = column;
+ this.viewer = viewer;
+ }
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ ImageComparator comparator = (ImageComparator)viewer.getComparator();
+ Table t = viewer.getTable();
+ if (comparator.getColumn() == column) {
+ comparator.reverseDirection();
+ }
+ comparator.setColumn(column);
+ TableColumn tc = (TableColumn)e.getSource();
+ t.setSortColumn(tc);
+ t.setSortDirection(SWT.NONE);
+ viewer.refresh();
+ }
+
+ };
+
+ @Override
+ public void dispose() {
+ for (DeltaCloud cloud : clouds) {
+ cloud.removeImageListListener(this);
+ }
+ DeltaCloudManager.getDefault().removeCloudManagerListener(this);
+ super.dispose();
+ }
+
+ @Override
+ public void createPartControl(Composite parent) {
+ container = new Composite(parent, SWT.NULL);
+ FormLayout layout = new FormLayout();
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
+ container.setLayout(layout);
+
+ Label cloudSelectorLabel = new Label(container, SWT.NULL);
+ cloudSelectorLabel.setText(CVMessages.getString(CLOUD_SELECTOR_LABEL));
+
+ cloudSelector = new Combo(container, SWT.BORDER | SWT.READ_ONLY);
+ initializeCloudSelector();
+ cloudSelector.addModifyListener(cloudModifyListener);
+ // Following is a kludge so that on Linux the Combo is read-only but
+ // has a white background.
+ cloudSelector.addVerifyListener(new VerifyListener() {
+ @Override
+ public void verifyText(VerifyEvent e) {
+ e.doit = false;
+ }
+ });
+
+ Composite tableArea = new Composite(container, SWT.NULL);
+ TableColumnLayout tableLayout = new TableColumnLayout();
+ tableArea.setLayout(tableLayout);
+
+ viewer = new TableViewer(tableArea, SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
+ Table table = viewer.getTable();
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+ contentProvider = new ImageViewLabelAndContentProvider();
+ viewer.setContentProvider(contentProvider);
+ viewer.setLabelProvider(contentProvider);
+ ImageComparator comparator = new ImageComparator(0);
+ viewer.setComparator(comparator);
+
+ for (int i = 0; i < ImageViewLabelAndContentProvider.Column.getSize(); ++i) {
+ ImageViewLabelAndContentProvider.Column c =
+ ImageViewLabelAndContentProvider.Column.getColumn(i);
+ TableColumn tc = new TableColumn(table, SWT.NONE);
+ if (i == 0)
+ table.setSortColumn(tc);
+ tc.setText(CVMessages.getString(c.name()));
+ tableLayout.setColumnData(tc, new ColumnWeightData(c.getWeight(), true));
+ tc.addSelectionListener(new ColumnListener(i, viewer));
+ }
+ table.setSortDirection(SWT.NONE);
+
+ if (clouds.length > 0) {
+ currCloud = clouds[0];
+ currCloud.removeImageListListener(parentView);
+ viewer.setInput(clouds[0]);
+ currCloud.addImageListListener(parentView);
+ }
+
+ FormData f = new FormData();
+ f.top = new FormAttachment(0, 8);
+ f.left = new FormAttachment(0, 30);
+ cloudSelectorLabel.setLayoutData(f);
+
+ f = new FormData();
+ f.top = new FormAttachment(0, 5);
+ f.left = new FormAttachment(cloudSelectorLabel, 5);
+ cloudSelector.setLayoutData(f);
+
+ f = new FormData();
+ f.top = new FormAttachment(cloudSelector, 8);
+ f.left = new FormAttachment(0, 0);
+ f.right = new FormAttachment(100, 0);
+ f.bottom = new FormAttachment(100, 0);
+ tableArea.setLayoutData(f);
+
+ // Create the help context id for the viewer's control
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), "org.jboss.tools.deltacloud.ui.viewer");
+ makeActions();
+ hookContextMenu();
+ hookDoubleClickAction();
+ hookSelection();
+ contributeToActionBars();
+
+ DeltaCloudManager.getDefault().addCloudManagerListener(this);
+ }
+
+ private void hookSelection() {
+ viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ handleSelection();
+ }
+ });
+ }
+
+ private void hookContextMenu() {
+ MenuManager menuMgr = new MenuManager("#PopupMenu");
+ menuMgr.setRemoveAllWhenShown(true);
+ menuMgr.addMenuListener(new IMenuListener() {
+ public void menuAboutToShow(IMenuManager manager) {
+ ImageView.this.fillContextMenu(manager);
+ }
+ });
+ Menu menu = menuMgr.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+ getSite().registerContextMenu(menuMgr, viewer);
+ }
+
+ private void contributeToActionBars() {
+ IActionBars bars = getViewSite().getActionBars();
+ fillLocalPullDown(bars.getMenuManager());
+ fillLocalToolBar(bars.getToolBarManager());
+ }
+
+ private void handleSelection() {
+ IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+ selectedElement = (DeltaCloudImage)selection.getFirstElement();
+ }
+
+ private void fillLocalPullDown(IMenuManager manager) {
+ //TODO
+ }
+
+ private void fillContextMenu(IMenuManager manager) {
+ manager.add(launchAction);
+ // Other plug-ins can contribute there actions here
+ manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+ }
+
+ private void fillLocalToolBar(IToolBarManager manager) {
+ //TODO
+ }
+
+ private void makeActions() {
+ doubleClickAction = new Action() {
+ public void run() {
+ ISelection selection = viewer.getSelection();
+ Object obj = ((IStructuredSelection)selection).getFirstElement();
+ showMessage("Double-click detected on "+obj.toString());
+ }
+ };
+
+ launchAction = new Action() {
+ public void run() {
+ ISelection selection = viewer.getSelection();
+ final DeltaCloudImage image = (DeltaCloudImage)((IStructuredSelection)selection).getFirstElement();
+ Display.getDefault().asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ // TODO Auto-generated method stub
+ Shell shell = viewer.getControl().getShell();
+ IWizard wizard = new NewInstance(currCloud, image);
+ WizardDialog dialog = new WizardDialog(shell, wizard);
+ dialog.create();
+ dialog.open();
+
+ }
+
+ });
+ }
+ };
+ launchAction.setText(CVMessages.getString(LAUNCH_INSTANCE));
+ launchAction.setToolTipText(CVMessages.getString(LAUNCH_INSTANCE));
+ }
+
+ private void hookDoubleClickAction() {
+ viewer.addDoubleClickListener(new IDoubleClickListener() {
+ public void doubleClick(DoubleClickEvent event) {
+ doubleClickAction.run();
+ }
+ });
+ }
+
+ private void showMessage(String message) {
+ MessageDialog.openInformation(
+ viewer.getControl().getShell(),
+ CVMessages.getString("CloudViewName"), //$NON-NLS-1$
+ message);
+ }
+
+ @Override
+ public void setFocus() {
+ // TODO Auto-generated method stub
+
+ }
+
+ private void initializeCloudSelector() {
+ clouds = DeltaCloudManager.getDefault().getClouds();
+ String[] cloudNames = new String[clouds.length];
+ for (int i = 0; i < clouds.length; ++i) {
+ cloudNames[i] = clouds[i].getName();
+ }
+ cloudSelector.setItems(cloudNames);
+ if (clouds.length > 0) {
+ cloudSelector.setText(cloudNames[0]);
+ currCloud = clouds[0];
+ }
+ }
+
+ public void changeEvent(int type) {
+ String currName = null;
+ clouds = DeltaCloudManager.getDefault().getClouds();
+ if (currCloud != null) {
+ currName = currCloud.getName();
+ }
+ String[] cloudNames = new String[clouds.length];
+ int index = 0;
+ for (int i = 0; i < clouds.length; ++i) {
+ cloudNames[i] = clouds[i].getName();
+ if (cloudNames[i].equals(currName))
+ index = i;
+ }
+ cloudSelector.removeModifyListener(cloudModifyListener);
+ cloudSelector.setItems(cloudNames);
+ if (cloudNames.length > 0) {
+ cloudSelector.setText(cloudNames[index]);
+ currCloud = clouds[index];
+ viewer.setInput(currCloud);
+ } else {
+ currCloud = null;
+ cloudSelector.setText("");
+ viewer.setInput(new DeltaCloudImage[0]);
+ }
+ cloudSelector.addModifyListener(cloudModifyListener);
+ }
+
+ public void listChanged(DeltaCloudImage[] list) {
+ currCloud.removeImageListListener(parentView);
+ viewer.setInput(list);
+ currCloud.addImageListListener(parentView);
+ viewer.refresh();
+ }
+
+}
Added: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageViewLabelAndContentProvider.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageViewLabelAndContentProvider.java (rev 0)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageViewLabelAndContentProvider.java 2010-08-17 17:19:21 UTC (rev 24217)
@@ -0,0 +1,104 @@
+package org.jboss.tools.deltacloud.ui.views;
+
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.jface.viewers.BaseLabelProvider;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.graphics.Image;
+import org.jboss.tools.deltacloud.core.DeltaCloud;
+import org.jboss.tools.deltacloud.core.DeltaCloudImage;
+
+public class ImageViewLabelAndContentProvider extends BaseLabelProvider implements IStructuredContentProvider, ITableLabelProvider {
+
+ private DeltaCloud cloud;
+ private DeltaCloudImage[] images;
+
+ public enum Column {
+ NAME(0, 30),
+ ID(1, 20),
+ ARCH(2, 20),
+ DESC(3, 30);
+
+ private int column;
+ private int weight;
+ private static final Map<Integer,Column> lookup
+ = new HashMap<Integer,Column>();
+
+ static {
+ for(Column c : EnumSet.allOf(Column.class))
+ lookup.put(c.getColumnNumber(), c);
+ }
+
+ private Column(int column, int weight) {
+ this.column = column;
+ this.weight = weight;
+ }
+
+ public int getColumnNumber() {
+ return column;
+ }
+
+ public int getWeight() {
+ return weight;
+ }
+
+ public static Column getColumn(int number) {
+ return lookup.get(number);
+ }
+
+ public static int getSize() {
+ return lookup.size();
+ }
+
+ };
+
+ @Override
+ public Object[] getElements(Object inputElement) {
+ return images;
+ }
+
+ @Override
+ public void dispose() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ if (newInput != null) {
+ if (newInput instanceof DeltaCloudImage[]) {
+ images = (DeltaCloudImage[])newInput;
+ } else {
+ cloud = (DeltaCloud)newInput;
+ images = cloud.getImages();
+ }
+ }
+ }
+
+ @Override
+ public Image getColumnImage(Object element, int columnIndex) {
+ return null;
+ }
+
+ @Override
+ public String getColumnText(Object element, int columnIndex) {
+ Column c = Column.getColumn(columnIndex);
+ DeltaCloudImage i = (DeltaCloudImage)element;
+ switch (c) {
+ case NAME:
+ return i.getName();
+ case ID:
+ return i.getId();
+ case ARCH:
+ return i.getArchitecture();
+ case DESC:
+ return i.getDescription();
+ }
+ return "";
+ }
+
+}
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/InstanceView.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/InstanceView.java 2010-08-17 14:46:11 UTC (rev 24216)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/InstanceView.java 2010-08-17 17:19:21 UTC (rev 24217)
@@ -141,6 +141,15 @@
};
@Override
+ public void dispose() {
+ for (DeltaCloud cloud : clouds) {
+ cloud.removeInstanceListListener(this);
+ }
+ DeltaCloudManager.getDefault().removeCloudManagerListener(this);
+ super.dispose();
+ }
+
+ @Override
public void createPartControl(Composite parent) {
container = new Composite(parent, SWT.NULL);
FormLayout layout = new FormLayout();
@@ -184,7 +193,7 @@
if (i == 0)
table.setSortColumn(tc);
tc.setText(CVMessages.getString(c.name()));
- tableLayout.setColumnData(tc, new ColumnWeightData(c.getWeight()));
+ tableLayout.setColumnData(tc, new ColumnWeightData(c.getWeight(), true));
tc.addSelectionListener(new ColumnListener(i, viewer));
}
table.setSortDirection(SWT.NONE);
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstance.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstance.java 2010-08-17 14:46:11 UTC (rev 24216)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstance.java 2010-08-17 17:19:21 UTC (rev 24217)
@@ -101,6 +101,8 @@
String imageId = image.getId();
String profileId = mainPage.getHardwareProfile();
String realmId = mainPage.getRealmId();
+ String memory = mainPage.getMemoryProperty();
+ String storage = mainPage.getStorageProperty();
String name = null;
try {
name = URLEncoder.encode(mainPage.getInstanceName(), "UTF-8");
@@ -129,7 +131,7 @@
prefs.putBoolean(IDeltaCloudPreferenceConstants.DONT_CONFIRM_CREATE_INSTANCE, true);
}
}
- instance = cloud.createInstance(name, imageId, realmId, profileId);
+ instance = cloud.createInstance(name, imageId, realmId, profileId, memory, storage);
if (instance != null)
result = true;
final String instanceId = instance.getId();
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ProfileComposite.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ProfileComposite.java 2010-08-17 14:46:11 UTC (rev 24216)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ProfileComposite.java 2010-08-17 17:19:21 UTC (rev 24217)
@@ -367,26 +367,14 @@
public String getMemory() {
if (memory != null && !memory.equals(memoryDefaultValue)) {
- String retVal = memory;
- if (memoryDecDigits > 0) {
- // Need to put back decimal point in returned value when we used the spinner
- retVal = retVal.substring(0, retVal.length() - memoryDecDigits).concat(".").
- concat(memory.substring(memory.length() - memoryDecDigits));
- }
- return retVal;
+ return memory;
}
return null;
}
public String getStorage() {
if (storage != null && !storage.equals(storageDefaultValue)) {
- String retVal = storage;
- if (storageDecDigits > 0) {
- // Need to put back decimal point in returned value when we used the spinner
- retVal = retVal.substring(0, retVal.length() - storageDecDigits).concat(".").
- concat(storage.substring(storage.length() - storageDecDigits));
- }
- return retVal;
+ return storage;
}
return null;
}
15 years, 4 months