[jboss-svn-commits] JBL Code SVN: r20847 - in labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools: META-INF and 6 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Jun 30 16:16:06 EDT 2008
Author: john.graham at jboss.org
Date: 2008-06-30 16:16:06 -0400 (Mon, 30 Jun 2008)
New Revision: 20847
Added:
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/GuvnorDecorator.java
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/CommitAction.java
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/CompareVersionAction.java
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/DisconnectAction.java
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/ShowHistoryAction.java
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/SwitchVersionAction.java
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/UpdateAction.java
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/GuvnorMetadataProps.java
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/GuvnorMetadataUtils.java
Modified:
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/META-INF/MANIFEST.MF
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/plugin.properties
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/plugin.xml
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/GuvnorLocationManager.java
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/properties/GuvnorWorkspaceFilePage.java
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/webdav/IWebDavClient.java
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/webdav/WebDavClient.java
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/RepositoryView.java
Log:
Decorator for governed resources. Pop-up menu for governed resources.
Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/META-INF/MANIFEST.MF
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/META-INF/MANIFEST.MF 2008-06-30 15:17:58 UTC (rev 20846)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/META-INF/MANIFEST.MF 2008-06-30 20:16:06 UTC (rev 20847)
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %plugin.name
Bundle-SymbolicName: org.guvnor.tools;singleton:=true
-Bundle-Version: 0.5.0.200806271630
+Bundle-Version: 0.5.0.200806301613
Bundle-Activator: org.guvnor.tools.Activator
Bundle-Vendor: %plugin.provider
Bundle-Localization: plugin
Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/plugin.properties
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/plugin.properties 2008-06-30 15:17:58 UTC (rev 20846)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/plugin.properties 2008-06-30 20:16:06 UTC (rev 20847)
@@ -11,5 +11,13 @@
persp.name = Guvnor Repository Exploring
+decorator.desc = Guvnor resource decorator
action.properties = Properties
-action.properties.tooltip = Show properties for the selected element
\ No newline at end of file
+action.properties.tooltip = Show properties for the selected element
+
+action.popup.update = Update
+action.popup.commit = Commit
+action.popup.showhistory = Show History
+action.popup.compareversion = Compare with Version...
+action.popup.switchversion = Switch to Version...
+action.popup.disconnect = Disconnect
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/plugin.xml
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/plugin.xml 2008-06-30 15:17:58 UTC (rev 20846)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/plugin.xml 2008-06-30 20:16:06 UTC (rev 20847)
@@ -90,6 +90,50 @@
id="org.guvnor.tools.view.model.actions.properties">
</action>
</objectContribution>
+ <objectContribution id="org.guvnor.tools.contribution1"
+ objectClass="org.eclipse.core.resources.IFile">
+ <menu id="org.guvnor.tools.popupmenu"
+ label="%category.name"
+ path="additions">
+ <separator name="group1"/>
+ </menu>
+ <action class="org.guvnor.tools.actions.DisconnectAction"
+ enablesFor="1"
+ id="org.guvnor.tools.actions.disconnectaction"
+ label="%action.popup.disconnect"
+ menubarPath="org.guvnor.tools.popupmenu/group1">
+ </action>
+ <action class="org.guvnor.tools.actions.SwitchVersionAction"
+ enablesFor="1"
+ id="org.guvnor.tools.actions.switchversionaction"
+ label="%action.popup.switchversion"
+ menubarPath="org.guvnor.tools.popupmenu/group1">
+ </action>
+ <action class="org.guvnor.tools.actions.CompareVersionAction"
+ enablesFor="1"
+ id="org.guvnor.tools.actions.compareversionaction"
+ label="%action.popup.compareversion"
+ menubarPath="org.guvnor.tools.popupmenu/group1">
+ </action>
+ <action class="org.guvnor.tools.actions.ShowHistoryAction"
+ enablesFor="1"
+ id="org.guvnor.tools.actions.showhistoryaction"
+ label="%action.popup.showhistory"
+ menubarPath="org.guvnor.tools.popupmenu/group1">
+ </action>
+ <action class="org.guvnor.tools.actions.CommitAction"
+ enablesFor="1"
+ id="org.guvnor.tools.actions.commitaction"
+ label="%action.popup.commit"
+ menubarPath="org.guvnor.tools.popupmenu/group1">
+ </action>
+ <action class="org.guvnor.tools.actions.UpdateAction"
+ enablesFor="1"
+ id="org.guvnor.tools.actions.updateaction"
+ label="%action.popup.update"
+ menubarPath="org.guvnor.tools.popupmenu/group1">
+ </action>
+ </objectContribution>
</extension>
<extension point = "org.eclipse.ui.propertyPages">
@@ -97,4 +141,19 @@
name="%category.name"
class="org.guvnor.tools.properties.GuvnorWorkspaceFilePage"/>
</extension>
+
+ <extension point="org.eclipse.ui.decorators">
+ <decorator lightweight="true" adaptable="true"
+ label="%category.name" state="true"
+ class="org.guvnor.tools.GuvnorDecorator"
+ id="org.guvnor.tools.decorator">
+ <description>
+ %decorator.desc
+ </description>
+ <enablement>
+ <objectClass name="org.eclipse.core.resources.IResource"/>
+ </enablement>
+ </decorator>
+ </extension>
+
</plugin>
Added: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/GuvnorDecorator.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/GuvnorDecorator.java (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/GuvnorDecorator.java 2008-06-30 20:16:06 UTC (rev 20847)
@@ -0,0 +1,67 @@
+package org.guvnor.tools;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.viewers.IDecoration;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ILightweightLabelDecorator;
+import org.guvnor.tools.utils.GuvnorMetadataProps;
+import org.guvnor.tools.utils.GuvnorMetadataUtils;
+
+public class GuvnorDecorator implements ILightweightLabelDecorator {
+
+ private boolean isGuvnorResource(Object element) {
+ if (element instanceof IResource) {
+ return GuvnorMetadataUtils.findGuvnorMetadata((IResource)element) != null;
+ } else {
+ return false;
+ }
+ }
+
+ private void decorateResource(IResource resource, IDecoration decoration) {
+ if (resource instanceof IFile) {
+ decoration.addOverlay(Activator.getImageDescriptor(Activator.IMG_GUVCONTROLLED),
+ IDecoration.TOP_RIGHT);
+ try {
+ GuvnorMetadataProps props = GuvnorMetadataUtils.getGuvnorMetadata(resource);
+ if (props.getVersion() != null) {
+ decoration.addSuffix(" " + props.getVersion());
+ }
+ } catch (Exception e) {
+ Activator.getDefault().writeLog(IStatus.ERROR, e.getMessage(), e);
+ }
+ }
+ }
+
+ public void decorate(Object element, IDecoration decoration) {
+ if (isGuvnorResource(element)) {
+ if (element instanceof IResource) {
+ decorateResource((IResource)element, decoration);
+ } else {
+ Activator.getDefault().writeLog(IStatus.ERROR,
+ "Called to decorate unknown: " + element.getClass().toString(), new Exception());
+ }
+ }
+ }
+
+ public void addListener(ILabelProviderListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void dispose() {
+ // TODO Auto-generated method stub
+
+ }
+
+ public boolean isLabelProperty(Object element, String property) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public void removeListener(ILabelProviderListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+}
Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/GuvnorLocationManager.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/GuvnorLocationManager.java 2008-06-30 15:17:58 UTC (rev 20846)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/GuvnorLocationManager.java 2008-06-30 20:16:06 UTC (rev 20847)
@@ -43,7 +43,7 @@
try {
commit();
} catch (Exception e) {
- e.printStackTrace();
+ Activator.getDefault().writeLog(IStatus.ERROR, e.getMessage(), e);
}
}
@@ -64,7 +64,7 @@
notifyListeners(IRepositorySetListener.REP_ADDED);
commit();
} catch (Exception e) {
- e.printStackTrace();
+ Activator.getDefault().writeLog(IStatus.ERROR, e.getMessage(), e);
}
return res;
}
Added: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/CommitAction.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/CommitAction.java (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/CommitAction.java 2008-06-30 20:16:06 UTC (rev 20847)
@@ -0,0 +1,69 @@
+package org.guvnor.tools.actions;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+import org.guvnor.tools.Activator;
+import org.guvnor.tools.utils.GuvnorMetadataProps;
+import org.guvnor.tools.utils.GuvnorMetadataUtils;
+
+public class CommitAction implements IObjectActionDelegate {
+
+ private IFile selectedFile;
+ private GuvnorMetadataProps props;
+
+ /**
+ * Constructor for Action1.
+ */
+ public CommitAction() {
+ super();
+ }
+
+ /**
+ * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
+ */
+ public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+ }
+
+ /**
+ * @see IActionDelegate#run(IAction)
+ */
+ public void run(IAction action) {
+ Shell shell = new Shell();
+ MessageDialog.openInformation(
+ shell,
+ "JBoss Guvnor Tools Plug-in",
+ "Commit Verson was executed.");
+ }
+
+ /**
+ * @see IActionDelegate#selectionChanged(IAction, ISelection)
+ */
+ public void selectionChanged(IAction action, ISelection selection) {
+ // Reset state to default
+ selectedFile = null;
+ props = null;
+ action.setEnabled(false);
+ // See if we should enable for the selection
+ try {
+ if (selection instanceof IStructuredSelection) {
+ IStructuredSelection sel = (IStructuredSelection)selection;
+ if (sel.getFirstElement() instanceof IFile) {
+ props = GuvnorMetadataUtils.getGuvnorMetadata((IFile)sel.getFirstElement());
+ if (props != null) {
+ selectedFile = (IFile)sel.getFirstElement();
+ action.setEnabled(true);
+ }
+ }
+ }
+ } catch (Exception e) {
+ Activator.getDefault().writeLog(IStatus.ERROR, e.getMessage(), e);
+ }
+ }
+}
Added: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/CompareVersionAction.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/CompareVersionAction.java (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/CompareVersionAction.java 2008-06-30 20:16:06 UTC (rev 20847)
@@ -0,0 +1,69 @@
+package org.guvnor.tools.actions;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+import org.guvnor.tools.Activator;
+import org.guvnor.tools.utils.GuvnorMetadataProps;
+import org.guvnor.tools.utils.GuvnorMetadataUtils;
+
+public class CompareVersionAction implements IObjectActionDelegate {
+
+ private IFile selectedFile;
+ private GuvnorMetadataProps props;
+
+ /**
+ * Constructor for Action1.
+ */
+ public CompareVersionAction() {
+ super();
+ }
+
+ /**
+ * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
+ */
+ public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+ }
+
+ /**
+ * @see IActionDelegate#run(IAction)
+ */
+ public void run(IAction action) {
+ Shell shell = new Shell();
+ MessageDialog.openInformation(
+ shell,
+ "JBoss Guvnor Tools Plug-in",
+ "Compare Verson was executed.");
+ }
+
+ /**
+ * @see IActionDelegate#selectionChanged(IAction, ISelection)
+ */
+ public void selectionChanged(IAction action, ISelection selection) {
+ // Reset state to default
+ selectedFile = null;
+ props = null;
+ action.setEnabled(false);
+ // See if we should enable for the selection
+ try {
+ if (selection instanceof IStructuredSelection) {
+ IStructuredSelection sel = (IStructuredSelection)selection;
+ if (sel.getFirstElement() instanceof IFile) {
+ props = GuvnorMetadataUtils.getGuvnorMetadata((IFile)sel.getFirstElement());
+ if (props != null) {
+ selectedFile = (IFile)sel.getFirstElement();
+ action.setEnabled(true);
+ }
+ }
+ }
+ } catch (Exception e) {
+ Activator.getDefault().writeLog(IStatus.ERROR, e.getMessage(), e);
+ }
+ }
+}
Added: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/DisconnectAction.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/DisconnectAction.java (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/DisconnectAction.java 2008-06-30 20:16:06 UTC (rev 20847)
@@ -0,0 +1,82 @@
+package org.guvnor.tools.actions;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IActionDelegate;
+import org.eclipse.ui.IDecoratorManager;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+import org.guvnor.tools.Activator;
+import org.guvnor.tools.utils.GuvnorMetadataProps;
+import org.guvnor.tools.utils.GuvnorMetadataUtils;
+
+public class DisconnectAction implements IObjectActionDelegate {
+
+ private IFile selectedFile;
+
+ /**
+ * Constructor for Action1.
+ */
+ public DisconnectAction() {
+ super();
+ }
+
+ /**
+ * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
+ */
+ public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+ }
+
+ /**
+ * @see IActionDelegate#run(IAction)
+ */
+ public void run(IAction action) {
+ if (selectedFile == null) {
+ return;
+ }
+ IFile mdFile = GuvnorMetadataUtils.findGuvnorMetadata(selectedFile);
+ if (mdFile == null) {
+ return;
+ }
+ try {
+ IWorkspace ws = mdFile.getWorkspace();
+ ws.delete(new IResource[] { mdFile }, true, null);
+ IDecoratorManager manager = Activator.getDefault().
+ getWorkbench().getDecoratorManager();
+ manager.update("org.guvnor.tools.decorator");
+ } catch (CoreException e) {
+ Activator.getDefault().writeLog(IStatus.ERROR, e.getMessage(), e);
+ }
+ }
+
+ /**
+ * @see IActionDelegate#selectionChanged(IAction, ISelection)
+ */
+ public void selectionChanged(IAction action, ISelection selection) {
+ // Reset state to default
+ selectedFile = null;
+ action.setEnabled(false);
+ // See if we should enable for the selection
+ try {
+ if (selection instanceof IStructuredSelection) {
+ IStructuredSelection sel = (IStructuredSelection)selection;
+ if (sel.getFirstElement() instanceof IFile) {
+ GuvnorMetadataProps props = GuvnorMetadataUtils.
+ getGuvnorMetadata((IFile)sel.getFirstElement());
+ if (props != null) {
+ selectedFile = (IFile)sel.getFirstElement();
+ action.setEnabled(true);
+ }
+ }
+ }
+ } catch (Exception e) {
+ Activator.getDefault().writeLog(IStatus.ERROR, e.getMessage(), e);
+ }
+ }
+}
Added: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/ShowHistoryAction.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/ShowHistoryAction.java (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/ShowHistoryAction.java 2008-06-30 20:16:06 UTC (rev 20847)
@@ -0,0 +1,69 @@
+package org.guvnor.tools.actions;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+import org.guvnor.tools.Activator;
+import org.guvnor.tools.utils.GuvnorMetadataProps;
+import org.guvnor.tools.utils.GuvnorMetadataUtils;
+
+public class ShowHistoryAction implements IObjectActionDelegate {
+
+ private IFile selectedFile;
+ private GuvnorMetadataProps props;
+
+ /**
+ * Constructor for Action1.
+ */
+ public ShowHistoryAction() {
+ super();
+ }
+
+ /**
+ * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
+ */
+ public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+ }
+
+ /**
+ * @see IActionDelegate#run(IAction)
+ */
+ public void run(IAction action) {
+ Shell shell = new Shell();
+ MessageDialog.openInformation(
+ shell,
+ "JBoss Guvnor Tools Plug-in",
+ "Show History was executed.");
+ }
+
+ /**
+ * @see IActionDelegate#selectionChanged(IAction, ISelection)
+ */
+ public void selectionChanged(IAction action, ISelection selection) {
+ // Reset state to default
+ selectedFile = null;
+ props = null;
+ action.setEnabled(false);
+ // See if we should enable for the selection
+ try {
+ if (selection instanceof IStructuredSelection) {
+ IStructuredSelection sel = (IStructuredSelection)selection;
+ if (sel.getFirstElement() instanceof IFile) {
+ props = GuvnorMetadataUtils.getGuvnorMetadata((IFile)sel.getFirstElement());
+ if (props != null) {
+ selectedFile = (IFile)sel.getFirstElement();
+ action.setEnabled(true);
+ }
+ }
+ }
+ } catch (Exception e) {
+ Activator.getDefault().writeLog(IStatus.ERROR, e.getMessage(), e);
+ }
+ }
+}
Added: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/SwitchVersionAction.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/SwitchVersionAction.java (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/SwitchVersionAction.java 2008-06-30 20:16:06 UTC (rev 20847)
@@ -0,0 +1,70 @@
+package org.guvnor.tools.actions;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+import org.guvnor.tools.Activator;
+import org.guvnor.tools.utils.GuvnorMetadataProps;
+import org.guvnor.tools.utils.GuvnorMetadataUtils;
+
+public class SwitchVersionAction implements IObjectActionDelegate {
+
+ private IFile selectedFile;
+ private GuvnorMetadataProps props;
+
+ /**
+ * Constructor for Action1.
+ */
+ public SwitchVersionAction() {
+ super();
+ }
+
+ /**
+ * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
+ */
+ public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+ }
+
+ /**
+ * @see IActionDelegate#run(IAction)
+ */
+ public void run(IAction action) {
+ Shell shell = new Shell();
+ MessageDialog.openInformation(
+ shell,
+ "JBoss Guvnor Tools Plug-in",
+ "Switch Version was executed.");
+ }
+
+ /**
+ * @see IActionDelegate#selectionChanged(IAction, ISelection)
+ */
+ public void selectionChanged(IAction action, ISelection selection) {
+ // Reset state to default
+ selectedFile = null;
+ props = null;
+ action.setEnabled(false);
+ // See if we should enable for the selection
+ try {
+ if (selection instanceof IStructuredSelection) {
+ IStructuredSelection sel = (IStructuredSelection)selection;
+ if (sel.getFirstElement() instanceof IFile) {
+ props = GuvnorMetadataUtils.getGuvnorMetadata((IFile)sel.getFirstElement());
+ if (props != null) {
+ selectedFile = (IFile)sel.getFirstElement();
+ action.setEnabled(true);
+ }
+ }
+ }
+ } catch (Exception e) {
+ Activator.getDefault().writeLog(IStatus.ERROR, e.getMessage(), e);
+ }
+ }
+
+}
Added: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/UpdateAction.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/UpdateAction.java (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/UpdateAction.java 2008-06-30 20:16:06 UTC (rev 20847)
@@ -0,0 +1,103 @@
+package org.guvnor.tools.actions;
+
+import java.io.InputStream;
+import java.net.URL;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IActionDelegate;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.webdav.IResponse;
+import org.guvnor.tools.Activator;
+import org.guvnor.tools.utils.GuvnorMetadataProps;
+import org.guvnor.tools.utils.GuvnorMetadataUtils;
+import org.guvnor.tools.utils.PlatformUtils;
+import org.guvnor.tools.utils.webdav.IWebDavClient;
+import org.guvnor.tools.utils.webdav.WebDavClientFactory;
+import org.guvnor.tools.utils.webdav.WebDavException;
+import org.guvnor.tools.utils.webdav.WebDavServerCache;
+
+public class UpdateAction implements IObjectActionDelegate {
+
+ private IFile selectedFile;
+ private GuvnorMetadataProps props;
+
+ /**
+ * Constructor for Action1.
+ */
+ public UpdateAction() {
+ super();
+ }
+
+ /**
+ * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
+ */
+ public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+ }
+
+ /**
+ * @throws Exception
+ * @see IActionDelegate#run(IAction)
+ */
+ public void run(IAction action) {
+ if (selectedFile == null
+ || props == null) {
+ return;
+ }
+ try {
+ IWebDavClient client = WebDavServerCache.getWebDavClient(props.getRepository());
+ if (client == null) {
+ client = WebDavClientFactory.createClient(new URL(props.getRepository()));
+ WebDavServerCache.cacheWebDavClient(props.getRepository(), client);
+ }
+ InputStream ins = null;
+ try {
+ ins = client.getInputStream(props.getFullpath());
+ } catch (WebDavException wde) {
+ if (wde.getErrorCode() != IResponse.SC_UNAUTHORIZED) {
+ // If not an authentication failure, we don't know what to do with it
+ throw wde;
+ }
+ boolean retry = PlatformUtils.getInstance().
+ authenticateForServer(props.getRepository(), client);
+ if (retry) {
+ ins = client.getInputStream(props.getFullpath());
+ }
+ }
+ if (ins != null) {
+ selectedFile.setContents(ins, true, true, null);
+ }
+ } catch (Exception e) {
+ Activator.getDefault().writeLog(IStatus.ERROR, e.getMessage(), e);
+ }
+ }
+
+ /**
+ * @see IActionDelegate#selectionChanged(IAction, ISelection)
+ */
+ public void selectionChanged(IAction action, ISelection selection) {
+ // Reset state to default
+ selectedFile = null;
+ props = null;
+ action.setEnabled(false);
+ // See if we should enable for the selection
+ try {
+ if (selection instanceof IStructuredSelection) {
+ IStructuredSelection sel = (IStructuredSelection)selection;
+ if (sel.getFirstElement() instanceof IFile) {
+ props = GuvnorMetadataUtils.getGuvnorMetadata((IFile)sel.getFirstElement());
+ if (props != null) {
+ selectedFile = (IFile)sel.getFirstElement();
+ action.setEnabled(true);
+ }
+ }
+ }
+ } catch (Exception e) {
+ Activator.getDefault().writeLog(IStatus.ERROR, e.getMessage(), e);
+ }
+ }
+}
Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/properties/GuvnorWorkspaceFilePage.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/properties/GuvnorWorkspaceFilePage.java 2008-06-30 15:17:58 UTC (rev 20846)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/properties/GuvnorWorkspaceFilePage.java 2008-06-30 20:16:06 UTC (rev 20847)
@@ -1,10 +1,7 @@
package org.guvnor.tools.properties;
-import java.util.Properties;
-
-import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
@@ -13,6 +10,9 @@
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.IWorkbenchPropertyPage;
import org.eclipse.ui.dialogs.PropertyPage;
+import org.guvnor.tools.Activator;
+import org.guvnor.tools.utils.GuvnorMetadataProps;
+import org.guvnor.tools.utils.GuvnorMetadataUtils;
public class GuvnorWorkspaceFilePage extends PropertyPage implements IWorkbenchPropertyPage {
@@ -25,46 +25,46 @@
Composite composite = createComposite(parent, 2);
IResource resource = (IResource)super.getElement().getAdapter(IResource.class);
if (resource != null) {
- displayGuvnorProperties(composite, findGuvnorMetadata(resource));
+ displayGuvnorProperties(composite, resource);
} else {
indicateNotGuvnorAssociated(composite);
}
return composite;
}
- private void displayGuvnorProperties(Composite composite, IFile md) {
- if (md == null) {
- indicateNotGuvnorAssociated(composite);
- } else {
- try {
- Properties props = new Properties();
- props.load(md.getContents());
+ private void displayGuvnorProperties(Composite composite, IResource resource) {
+ GuvnorMetadataProps props;
+ try {
+ props = GuvnorMetadataUtils.getGuvnorMetadata(resource);
+ if (props == null) {
+ indicateNotGuvnorAssociated(composite);
+ } else {
addGuvnorProperties(composite, props);
- } catch (Exception e) {
- e.printStackTrace();
}
+ } catch (Exception e) {
+ Activator.getDefault().writeLog(IStatus.ERROR, e.getMessage(), e);
}
}
- private void addGuvnorProperties(Composite composite, Properties props) {
+ private void addGuvnorProperties(Composite composite, GuvnorMetadataProps props) {
new Label(composite, SWT.NONE).setText("Local name:");
Label l = new Label(composite, SWT.NONE);
- String val = props.getProperty("filename") != null?props.getProperty("filename"):"";
+ String val = props.getFilename() != null?props.getFilename():"";
l.setText(val);
new Label(composite, SWT.NONE).setText("Repository:");
l = new Label(composite, SWT.NONE);
- val = props.getProperty("repository") != null?props.getProperty("repository"):"";
+ val = props.getRepository() != null?props.getRepository():"";
l.setText(val);
new Label(composite, SWT.NONE).setText("Repository Path:");
l = new Label(composite, SWT.NONE);
- val = props.getProperty("fullpath") != null?props.getProperty("fullpath"):"";
+ val = props.getFullpath() != null?props.getFullpath():"";
l.setText(val);
new Label(composite, SWT.NONE).setText("Repository Version:");
l = new Label(composite, SWT.NONE);
- val = props.getProperty("lastmodified") != null?props.getProperty("lastmodified"):"";
+ val = props.getVersion() != null?props.getVersion():"";
l.setText(val);
}
@@ -72,19 +72,6 @@
new Label(composite, SWT.NONE).setText("(Not associated with Guvnor)");
}
- private IFile findGuvnorMetadata(IResource resource) {
- IFile res = null;
- IPath dir = resource.getFullPath().removeLastSegments(1);
- IPath mdpath = dir.append(".guvnorinfo").append(resource.getName());
- IResource mdResource = resource.getWorkspace().getRoot().findMember(mdpath);
- if (mdResource != null
- && mdResource.exists()
- && mdResource instanceof IFile) {
- res = (IFile)mdResource;
- }
- return res;
- }
-
private Composite createComposite(Composite parent, int numColumns) {
Composite composite = new Composite(parent, SWT.NULL);
Added: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/GuvnorMetadataProps.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/GuvnorMetadataProps.java (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/GuvnorMetadataProps.java 2008-06-30 20:16:06 UTC (rev 20847)
@@ -0,0 +1,40 @@
+package org.guvnor.tools.utils;
+
+public class GuvnorMetadataProps {
+ private String filename;
+ private String repository;
+ private String fullpath;
+ private String version;
+
+ public GuvnorMetadataProps(String filename, String repository,
+ String fullpath, String version) {
+ this.filename = filename;
+ this.repository = repository;
+ this.fullpath = fullpath;
+ this.version = version;
+ }
+ public String getFilename() {
+ return filename;
+ }
+ public void setFilename(String filename) {
+ this.filename = filename;
+ }
+ public String getRepository() {
+ return repository;
+ }
+ public void setRepository(String repository) {
+ this.repository = repository;
+ }
+ public String getFullpath() {
+ return fullpath;
+ }
+ public void setFullpath(String fullpath) {
+ this.fullpath = fullpath;
+ }
+ public String getVersion() {
+ return version;
+ }
+ public void setVersion(String version) {
+ this.version = version;
+ }
+}
Added: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/GuvnorMetadataUtils.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/GuvnorMetadataUtils.java (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/GuvnorMetadataUtils.java 2008-06-30 20:16:06 UTC (rev 20847)
@@ -0,0 +1,44 @@
+package org.guvnor.tools.utils;
+
+import java.util.Properties;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IPath;
+
+/**
+ * A set of utilities for dealing with (local) Guvnor metadata.
+ * @author jgraham
+ */
+public class GuvnorMetadataUtils {
+ /**
+ * Finds the local Guvnor metadata file associated with a given resource.
+ * @param resource The resource to locate metadata for.
+ * @return The metadata for the given resource, null if metadata is not found.
+ */
+ public static IFile findGuvnorMetadata(IResource resource) {
+ IFile res = null;
+ IPath dir = resource.getFullPath().removeLastSegments(1);
+ IPath mdpath = dir.append(".guvnorinfo").append("." + resource.getName());
+ IResource mdResource = resource.getWorkspace().getRoot().findMember(mdpath);
+ if (mdResource != null
+ && mdResource.exists()
+ && mdResource instanceof IFile) {
+ res = (IFile)mdResource;
+ }
+ return res;
+ }
+
+ public static GuvnorMetadataProps getGuvnorMetadata(IResource resource) throws Exception {
+ IFile mdFile = findGuvnorMetadata(resource);
+ if (mdFile == null) {
+ return null;
+ }
+ Properties props = new Properties();
+ props.load(mdFile.getContents());
+ return new GuvnorMetadataProps(props.getProperty("filename"),
+ props.getProperty("repository"),
+ props.getProperty("fullpath"),
+ props.getProperty("lastmodified"));
+ }
+}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/webdav/IWebDavClient.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/webdav/IWebDavClient.java 2008-06-30 15:17:58 UTC (rev 20846)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/webdav/IWebDavClient.java 2008-06-30 20:16:06 UTC (rev 20847)
@@ -60,5 +60,13 @@
*/
public String getResourceContents(String resource) throws Exception;
+ /**
+ * Get the <code>InputStream</code> of a resource from a WebDav repository.
+ * @param resource The address of the resource
+ * @return An code>InputStream</code> for the resource
+ * @throws Exception Various WebDav errors can occur (See IResponse for details)
+ */
+ public InputStream getInputStream(String resource) throws Exception;
+
public void putResource(String location, String name, InputStream is) throws Exception;
}
Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/webdav/WebDavClient.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/webdav/WebDavClient.java 2008-06-30 15:17:58 UTC (rev 20846)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/webdav/WebDavClient.java 2008-06-30 20:16:06 UTC (rev 20847)
@@ -118,13 +118,28 @@
* @see org.guvnor.tools.utils.webdav.IWebDavClient#getResourceContents(java.lang.String)
*/
public String getResourceContents(String resource) throws Exception {
+ return StreamProcessingUtils.getStreamContents(getInputStream(resource));
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.guvnor.tools.utils.webdav.IWebDavClient#getInputStream(java.lang.String)
+ */
+ public InputStream getInputStream(String resource) throws Exception {
+ if (isUsingSessionAuthenication()) {
+ if (sessionAuthen != null) {
+ hClient.setAuthenticator(sessionAuthen);
+ } else {
+ setSessionAuthentication(false);
+ }
+ }
ILocator locator = WebDAVFactory.locatorFactory.newLocator(resource);
IResponse response = client.get(locator, createContext());
if (response.getStatusCode() != IResponse.SC_OK) {
throw new WebDavException("WebDav error: " + response.getStatusCode(),
response.getStatusCode());
}
- return StreamProcessingUtils.getStreamContents(response.getInputStream());
+ return response.getInputStream();
}
/*
Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/RepositoryView.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/RepositoryView.java 2008-06-30 15:17:58 UTC (rev 20846)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/RepositoryView.java 2008-06-30 20:16:06 UTC (rev 20847)
@@ -162,7 +162,7 @@
throw new Exception("Could not create directory " + metaPath.toOSString());
}
metaPath.toFile().deleteOnExit();
- File metaFile = new File(metaPath.toOSString() + File.separator + node.getName());
+ File metaFile = new File(metaPath.toOSString() + File.separator + "." + node.getName());
metaFile.deleteOnExit();
fos = new FileOutputStream(metaFile);
Properties props = new Properties();
More information about the jboss-svn-commits
mailing list