X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=plugins%2Forg.argeo.slc.akb.ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fakb%2Fui%2FAkbUiUtils.java;h=8012a8b08c6303faa49678b591451792e6c5ad89;hb=44b4c78e6a082d51d0410c3995b5edf353d417b9;hp=38ddcbffebbfa9d1a639e57f0b420c042393379c;hpb=da17a59fb316462126c56099d3670a7cd38a8906;p=gpl%2Fargeo-slc.git
diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbUiUtils.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbUiUtils.java
index 38ddcbffe..8012a8b08 100644
--- a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbUiUtils.java
+++ b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/AkbUiUtils.java
@@ -1,6 +1,7 @@
package org.argeo.slc.akb.ui;
import java.util.Calendar;
+import java.util.Map;
import javax.jcr.Node;
import javax.jcr.PropertyType;
@@ -8,6 +9,9 @@ import javax.jcr.RepositoryException;
import org.argeo.slc.akb.AkbException;
import org.argeo.slc.akb.utils.AkbJcrUtils;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
@@ -23,6 +27,9 @@ import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.AbstractFormPart;
import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.menus.CommandContributionItem;
+import org.eclipse.ui.menus.CommandContributionItemParameter;
+import org.eclipse.ui.services.IServiceLocator;
/** Some helper methods that factorize widely used snippets in people UI */
public class AkbUiUtils {
@@ -51,16 +58,17 @@ public class AkbUiUtils {
text.setEnabled(AkbJcrUtils.isNodeCheckedOutByMe(entity));
return tmpStr;
}
-
-
+
/**
* Shortcut to refresh a Text
widget given a Node in a form and
- * a property Name. Also manages its enable state and set a default message if corresponding Text value is empty
+ * a property Name. Also manages its enable state and set a default message
+ * if corresponding Text value is empty
*/
public static String refreshFormTextWidget(Text text, Node entity,
String propName, String defaultMsg) {
String tmpStr = refreshFormTextWidget(text, entity, propName);
- if (AkbJcrUtils.isEmptyString(tmpStr) && AkbJcrUtils.checkNotEmptyString(defaultMsg))
+ if (AkbJcrUtils.isEmptyString(tmpStr)
+ && AkbJcrUtils.checkNotEmptyString(defaultMsg))
text.setMessage(defaultMsg);
return tmpStr;
}
@@ -267,4 +275,48 @@ public class AkbUiUtils {
formData.bottom = new FormAttachment(bottom, 0);
return formData;
}
+
+ // //////////////////////////////
+ // / COMMANDS
+ public static CommandContributionItem createContributionItem(
+ IMenuManager menuManager, IServiceLocator locator, String itemId,
+ String cmdId, String label, ImageDescriptor icon,
+ Map params) {
+
+ CommandContributionItemParameter contributionItemParameter = new CommandContributionItemParameter(
+ locator, itemId, cmdId, SWT.PUSH);
+
+ contributionItemParameter.label = label;
+ contributionItemParameter.icon = icon;
+
+ if (params != null)
+ contributionItemParameter.parameters = params;
+ CommandContributionItem cci = new CommandContributionItem(
+ contributionItemParameter);
+ return cci;
+ }
+
+ /**
+ * Commodities the refresh of a single command with a map of parameters in a
+ * Menu.aboutToShow method to simplify further development
+ *
+ * @param menuManager
+ * @param locator
+ * @param cmdId
+ * @param label
+ * @param iconPath
+ * @param showCommand
+ */
+ public static void refreshParameterizedCommand(IMenuManager menuManager,
+ IServiceLocator locator, String itemId, String cmdId, String label,
+ ImageDescriptor icon, boolean showCommand,
+ Map params) {
+ IContributionItem ici = menuManager.find(itemId);
+ if (ici != null)
+ menuManager.remove(ici);
+ if (showCommand)
+ menuManager.add(createContributionItem(menuManager, locator,
+ itemId, cmdId, label, icon, params));
+ }
+
}
\ No newline at end of file