Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 228485 Details for
Bug 403468
Show Branch + Version in ModelExplorer
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Decorator for Modelexplorer. Also includes a decorator for the repository browser, which is not activated.
asanaDecoratorsBranchVersion.patch (text/plain), 6.85 KB, created by
Johannes Faltermeier
on 2013-03-15 10:13:24 EDT
(
hide
)
Description:
Decorator for Modelexplorer. Also includes a decorator for the repository browser, which is not activated.
Filename:
MIME Type:
Creator:
Johannes Faltermeier
Created:
2013-03-15 10:13:24 EDT
Size:
6.85 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.emf.ecp.emfstore.ui >diff --git plugin.xml plugin.xml >index 8d6e099..59ec2bf 100644 >--- plugin.xml >+++ plugin.xml >@@ -805,6 +805,22 @@ > </objectClass> > </enablement> > </decorator> >+ <decorator >+ adaptable="true" >+ class="org.eclipse.emf.ecp.emfstore.internal.ui.decorator.ProjectEMFStoreBranchDecorator" >+ id="org.eclipse.emf.ecp.emfstore.ui.decorators.EMFStoreBranchDecorator" >+ label="EMFStoreBranch Decorator" >+ lightweight="false" >+ state="true"> >+ <enablement> >+ <objectClass >+ name="org.eclipse.emf.ecp.core.ECPProject"> >+ </objectClass> >+ </enablement> >+ <description> >+ Show branch and version if shared >+ </description> >+ </decorator> > </extension> > <extension > point="org.eclipse.core.expressions.propertyTesters"> >@@ -861,4 +877,10 @@ > commitObserver="org.eclipse.emf.ecp.emfstore.internal.ui.decorator.EMFStoreDirtyDecorator"> > </observer> > </extension> >+ <extension >+ point="org.eclipse.emf.emfstore.client.shareObserver"> >+ <observer >+ shareObserver="org.eclipse.emf.ecp.emfstore.internal.ui.decorator.ProjectEMFStoreBranchDecorator"> >+ </observer> >+ </extension> > </plugin> >diff --git src/org/eclipse/emf/ecp/emfstore/internal/ui/decorator/ProjectEMFStoreBranchDecorator.java src/org/eclipse/emf/ecp/emfstore/internal/ui/decorator/ProjectEMFStoreBranchDecorator.java >new file mode 100644 >index 0000000..e691433 >--- /dev/null >+++ src/org/eclipse/emf/ecp/emfstore/internal/ui/decorator/ProjectEMFStoreBranchDecorator.java >@@ -0,0 +1,78 @@ >+/** >+ * >+ */ >+package org.eclipse.emf.ecp.emfstore.internal.ui.decorator; >+ >+import org.eclipse.emf.ecp.core.ECPProject; >+import org.eclipse.emf.ecp.core.ECPProvider; >+import org.eclipse.emf.ecp.core.ECPProviderRegistry; >+import org.eclipse.emf.ecp.core.util.ECPUtil; >+import org.eclipse.emf.ecp.emfstore.core.internal.EMFStoreProvider; >+import org.eclipse.emf.ecp.spi.core.InternalProject; >+import org.eclipse.emf.emfstore.client.ESLocalProject; >+import org.eclipse.emf.emfstore.client.observer.ESShareObserver; >+import org.eclipse.emf.emfstore.server.model.versionspec.ESPrimaryVersionSpec; >+ >+import org.eclipse.jface.viewers.ILabelDecorator; >+import org.eclipse.jface.viewers.ILabelProviderListener; >+import org.eclipse.swt.graphics.Image; >+ >+/** >+ * @author jfaltermeier >+ * >+ */ >+public class ProjectEMFStoreBranchDecorator implements ILabelDecorator, ESShareObserver { >+ >+ public void addListener(ILabelProviderListener listener) { >+ } >+ >+ public void dispose() { >+ } >+ >+ public boolean isLabelProperty(Object element, String property) { >+ return false; >+ } >+ >+ public void removeListener(ILabelProviderListener listener) { >+ >+ } >+ >+ public void shareDone(ESLocalProject localProject) { >+ decorateText(localProject.getProjectName(), localProject); >+ } >+ >+ public Image decorateImage(Image image, Object element) { >+ return image; >+ } >+ >+ public String decorateText(String text, Object element) { >+ ESLocalProject localProject; >+ if (element instanceof ESLocalProject) { >+ localProject = (ESLocalProject) element; >+ } else if (element instanceof ECPProject) { >+ ECPProvider ecpProvider = ECPProviderRegistry.INSTANCE.getProvider(EMFStoreProvider.NAME); >+ EMFStoreProvider provider = (EMFStoreProvider) ECPUtil.getResolvedElement(ecpProvider); >+ InternalProject project = (InternalProject) element; >+ localProject = provider.getProjectSpace(project); >+ } else { >+ return text; >+ } >+ >+ if (localProject == null) { >+ return text; >+ } >+ >+ if (localProject.isShared()) { >+ ESPrimaryVersionSpec versSpec; >+ try { >+ versSpec = localProject.getBaseVersion(); >+ return text + " [" + versSpec.getBranch() + ", Version " + versSpec.getIdentifier() + "]"; >+ } catch (NullPointerException e) { >+ // possible npe because share is async. -> shareobserver >+ } >+ >+ } >+ return text; >+ } >+ >+} >diff --git src/org/eclipse/emf/ecp/emfstore/internal/ui/decorator/RepositoryViewBranchDecorator.java src/org/eclipse/emf/ecp/emfstore/internal/ui/decorator/RepositoryViewBranchDecorator.java >new file mode 100644 >index 0000000..042a6dc >--- /dev/null >+++ src/org/eclipse/emf/ecp/emfstore/internal/ui/decorator/RepositoryViewBranchDecorator.java >@@ -0,0 +1,61 @@ >+/** >+ * >+ */ >+package org.eclipse.emf.ecp.emfstore.internal.ui.decorator; >+ >+import org.eclipse.emf.ecp.emfstore.core.internal.EMFStoreProjectWrapper; >+import org.eclipse.emf.emfstore.client.ESRemoteProject; >+import org.eclipse.emf.emfstore.server.exceptions.ESException; >+import org.eclipse.emf.emfstore.server.model.ESBranchInfo; >+import org.eclipse.emf.emfstore.server.model.versionspec.ESPrimaryVersionSpec; >+ >+import org.eclipse.core.runtime.NullProgressMonitor; >+import org.eclipse.jface.viewers.IDecoration; >+import org.eclipse.jface.viewers.ILabelProviderListener; >+import org.eclipse.jface.viewers.ILightweightLabelDecorator; >+ >+import java.util.List; >+ >+/** >+ * Optional decorator. Not used in extension point >+ * >+ * @author jfaltermeier >+ * >+ */ >+public class RepositoryViewBranchDecorator implements ILightweightLabelDecorator { >+ >+ public void addListener(ILabelProviderListener listener) { >+ } >+ >+ public void dispose() { >+ } >+ >+ public boolean isLabelProperty(Object element, String property) { >+ return false; >+ } >+ >+ public void removeListener(ILabelProviderListener listener) { >+ } >+ >+ public void decorate(Object element, IDecoration decoration) { >+ if (element instanceof EMFStoreProjectWrapper) { >+ EMFStoreProjectWrapper wrapper = (EMFStoreProjectWrapper) element; >+ ESRemoteProject remoteProject = wrapper.getCheckoutData(); >+ >+ if (remoteProject == null) { >+ return; >+ } >+ >+ try { >+ List<ESBranchInfo> branches = remoteProject.getBranches(new NullProgressMonitor()); >+ for (ESBranchInfo bi : branches) { >+ ESPrimaryVersionSpec versSpec = bi.getHead(); >+ decoration.addSuffix(" [" + versSpec.getBranch() + ", v" + versSpec.getIdentifier() + "]"); >+ } >+ } catch (ESException ex) { >+ } >+ } else { >+ return; >+ } >+ } >+} >diff --git src/org/eclipse/emf/ecp/emfstore/internal/ui/handler/CreateBranchHandler.java src/org/eclipse/emf/ecp/emfstore/internal/ui/handler/CreateBranchHandler.java >index 564d2cb..fa3fe06 100644 >--- src/org/eclipse/emf/ecp/emfstore/internal/ui/handler/CreateBranchHandler.java >+++ src/org/eclipse/emf/ecp/emfstore/internal/ui/handler/CreateBranchHandler.java >@@ -38,6 +38,7 @@ > ESLocalProject projectSpace = EMFStoreProvider.INSTANCE.getProjectSpace(project); > // TODO EMFStore constructor missing > new UICreateBranchController(HandlerUtil.getActiveShell(event), projectSpace).execute(); >+ project.notifyObjectsChanged(new Object[] { project }, false); > return null; > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
eneufeld
:
iplog+
Actions:
View
|
Diff
Attachments on
bug 403468
: 228485