diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/ResourceGroup.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/ResourceGroup.java | 181 |
1 files changed, 100 insertions, 81 deletions
diff --git a/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/ResourceGroup.java b/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/ResourceGroup.java index 028ed22759..bde71d9f91 100644 --- a/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/ResourceGroup.java +++ b/plugins/org.eclipse.emf.cdo.explorer.ui/src/org/eclipse/emf/cdo/explorer/ui/checkouts/ResourceGroup.java @@ -32,7 +32,7 @@ import org.eclipse.core.runtime.jobs.Job; /** * @author Eike Stepper */ -public class ResourceGroup extends CDOElement implements CDORenameContext +public class ResourceGroup extends CDOElement { private String name; @@ -48,104 +48,123 @@ public class ResourceGroup extends CDOElement implements CDORenameContext return (CDOResourceNode)super.getDelegate(); } - public String getType() - { - return "Resource Group"; - } - - public String getName() + @Override + public void reset() { - return name; + super.reset(); + name = getDelegate().trimExtension(); } - public void setName(final String name) + @Override + public Object getAdapter(@SuppressWarnings("rawtypes") Class adapter) { - final String type = getType(); - new Job("Rename " + type.toLowerCase()) + if (adapter == CDORenameContext.class) { - @Override - protected IStatus run(IProgressMonitor monitor) + CDOResourceNode delegate = getDelegate(); + CDOCheckout checkout = CDOExplorerUtil.getCheckout(delegate); + if (checkout != null && checkout.isOpen() && !checkout.isReadOnly()) { - CDOResourceNode resourceNode = getDelegate(); - CDOCheckout checkout = CDOExplorerUtil.getCheckout(resourceNode); - CDOTransaction transaction = checkout.openTransaction(); - - CDOCommitInfo commitInfo = null; - - try + return new CDORenameContext() { - for (Object child : getChildren()) - { - if (child instanceof CDOResourceNode) - { - CDOResourceNode childNode = (CDOResourceNode)child; - CDOResourceNode transactionalChildNode = transaction.getObject(childNode); - String extension = transactionalChildNode.getExtension(); - transactionalChildNode.setName(name + "." + extension); - } + public String getType() + { + return "Resource Group"; } - commitInfo = transaction.commit(); - } - catch (Exception ex) - { - OM.LOG.error(ex); - } - finally - { - transaction.close(); - } - - if (commitInfo != null) - { - checkout.getView().waitForUpdate(commitInfo.getTimeStamp()); - - CDOCheckoutManagerImpl checkoutManager = (CDOCheckoutManagerImpl)CDOExplorerUtil.getCheckoutManager(); - checkoutManager.fireElementChangedEvent(ElementsChangedEvent.StructuralImpact.PARENT, ResourceGroup.this); - } + public String getName() + { + return name; + } - return Status.OK_STATUS; - } - }.schedule(); - } + public void setName(final String name) + { + final String type = getType(); + new Job("Rename " + type.toLowerCase()) + { + @Override + protected IStatus run(IProgressMonitor monitor) + { + CDOResourceNode resourceNode = getDelegate(); + CDOCheckout checkout = CDOExplorerUtil.getCheckout(resourceNode); + CDOTransaction transaction = checkout.openTransaction(); + + CDOCommitInfo commitInfo = null; + + try + { + for (Object child : getChildren()) + { + if (child instanceof CDOResourceNode) + { + CDOResourceNode childNode = (CDOResourceNode)child; + CDOResourceNode transactionalChildNode = transaction.getObject(childNode); + String extension = transactionalChildNode.getExtension(); + + transactionalChildNode.setName(name + "." + extension); + } + } + + commitInfo = transaction.commit(); + } + catch (Exception ex) + { + OM.LOG.error(ex); + } + finally + { + transaction.close(); + } + + if (commitInfo != null) + { + checkout.getView().waitForUpdate(commitInfo.getTimeStamp()); + + CDOCheckoutManagerImpl checkoutManager = (CDOCheckoutManagerImpl)CDOExplorerUtil.getCheckoutManager(); + checkoutManager.fireElementChangedEvent(ElementsChangedEvent.StructuralImpact.PARENT, + ResourceGroup.this); + } + + return Status.OK_STATUS; + } + }.schedule(); + } - public String validateName(String name) - { - String type = getType(); - if (StringUtil.isEmpty(name)) - { - return type + " name is empty."; - } + public String validateName(String name) + { + String type = getType(); + if (StringUtil.isEmpty(name)) + { + return type + " name is empty."; + } - if (name.equals(getName())) - { - return null; - } + if (name.equals(getName())) + { + return null; + } - for (Object child : getChildren()) - { - if (child instanceof CDOResourceNode) - { - CDOResourceNode childNode = (CDOResourceNode)child; - String extension = childNode.getExtension(); + for (Object child : getChildren()) + { + if (child instanceof CDOResourceNode) + { + CDOResourceNode childNode = (CDOResourceNode)child; + String extension = childNode.getExtension(); + + String error = ExplorerUIAdapterFactory.checkUniqueName(childNode, name + "." + extension, type); + if (error != null) + { + return error; + } + } + } - String error = ExplorerUIAdapterFactory.checkUniqueName(childNode, name + "." + extension, type); - if (error != null) - { - return error; - } + return null; + } + }; } } - return null; - } - - @Override - public void reset() - { - super.reset(); - name = getDelegate().trimExtension(); + return super.getAdapter(adapter); } @Override |