Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcbateman2007-01-11 19:26:45 +0000
committercbateman2007-01-11 19:26:45 +0000
commitd4ba011a81d9bf8517c2b05855cbee0db128d62f (patch)
tree324173c0ad6c0fcd81a4bf68dd2a96fc4704ebf7
parent90c05155d6e20d6b2b92680b93d449013e85606b (diff)
downloadwebtools.jsf-d4ba011a81d9bf8517c2b05855cbee0db128d62f.tar.gz
webtools.jsf-d4ba011a81d9bf8517c2b05855cbee0db128d62f.tar.xz
webtools.jsf-d4ba011a81d9bf8517c2b05855cbee0db128d62f.zip
- re-organized the context menu structure vis http://wiki.eclipse.org/index.php/Canvas_Context_Menus
- enabled flyout palette on editor - changed facet conversion to be inline div in the design mode - switched the artificial separation padding to use padding insets instead of margin insets.
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/JSFUIPluginResources.properties2
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/actions/JSFAddActionGroup.java25
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/actions/JSFNavigationGroup.java25
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/actions/PageFlowContributor.java2
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/converter/jsfcore/JSFCoreConverterFactory.java4
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/elementedit/jsfhtml/DataTableElementEdit.java2
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/elementedit/jsfhtml/PanelGridElementEdit.java2
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/JMTResources.properties1
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/range/RangeActionGroup.java43
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/single/SelectEditPartAction.java32
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/single/SelectNodeAction.java22
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/single/SelectParentAction.java49
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/single/SingleElementActionGroup.java148
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/table/TableActionGroup.java2
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/converter/TagConverterToInlineBlock.java9
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/ICSSStyle.java6
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/style/AbstractStyle.java16
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/style/DefaultStyle.java6
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/HTMLEditor.java21
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/PageDesignerActionConstants.java115
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/SimpleGraphicalEditor.java223
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/ActionsMessages.properties10
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/DataBindingViewAction.java1
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/OutlineViewAction.java15
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/PaletteViewAction.java118
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/PropertiesViewAction.java40
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/RelatedViewActionGroup.java73
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/ShowViewAction.java46
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/DesignerPaletteViewer.java1
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/html/TableElementEdit.java2
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/viewer/DesignPosition.java2
31 files changed, 756 insertions, 307 deletions
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/JSFUIPluginResources.properties b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/JSFUIPluginResources.properties
index 5af178f6f..d092d0d48 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/JSFUIPluginResources.properties
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/JSFUIPluginResources.properties
@@ -27,7 +27,7 @@ ElementEdit.Submenu.PanelGrid.InsertFooter=Insert Footer
ElementEdit.Submenu.PanelGird.DeleteHeader=Delete Header
ElementEdit.Submenu.PanelGrid.DeleteFooter=Delete Footer
-ElementEdit.Submenu.JavaNavigation=Java Navigate
+ElementEdit.Submenu.JavaNavigation=Java
ElementEdit.Submenu.JavaNavigation.Binding=Binding
ElementEdit.Submenu.JavaNavigation.Value=Value
ElementEdit.Submenu.JavaNavigation.Action=Action
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/actions/JSFAddActionGroup.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/actions/JSFAddActionGroup.java
index 1797cd282..44ebbd570 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/actions/JSFAddActionGroup.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/actions/JSFAddActionGroup.java
@@ -15,6 +15,7 @@ import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.emf.common.util.EList;
import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
@@ -46,16 +47,20 @@ public class JSFAddActionGroup {
*/
public void fillContextMenu(IMenuManager menu, final IDOMElement element,
final IJSFCoreSupport support) {
- final IMenuManager submenu = new MenuManager(ActionsResources
- .getString("Submenu.JSFAdd"));//$NON-NLS-1$
- submenu.add(EMPTY_ACTION);
- submenu.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager manager) {
- submenu.removeAll();
- addJSFAddItems(submenu, element, support);
- }
- });
- menu.appendToGroup(PageDesignerActionConstants.GROUP_SPECIAL, submenu);
+ IContributionItem item = menu.find(PageDesignerActionConstants.INSERT_SUBMENU_ID);
+
+ if (item instanceof IMenuManager)
+ {
+ final IMenuManager submenu = (IMenuManager) item;
+ submenu.add(EMPTY_ACTION);
+ submenu.addMenuListener(new IMenuListener() {
+ public void menuAboutToShow(IMenuManager manager) {
+ submenu.removeAll();
+ addJSFAddItems(submenu, element, support);
+ }
+ });
+ }
+ //menu.appendToGroup(PageDesignerActionConstants.GROUP_SPECIAL, submenu);
}
/**
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/actions/JSFNavigationGroup.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/actions/JSFNavigationGroup.java
index d8fe22d7e..2e277b232 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/actions/JSFNavigationGroup.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/actions/JSFNavigationGroup.java
@@ -12,6 +12,7 @@
package org.eclipse.jst.pagedesigner.jsf.ui.actions;
import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
@@ -39,18 +40,26 @@ public class JSFNavigationGroup
*/
public void fillContextMenu(IMenuManager menu, final IDOMElement element, final IJSFCoreSupport support)
{
- final IMenuManager submenu = new MenuManager(JSFUIPlugin.getResourceString("ElementEdit.Submenu.JavaNavigation"));//$NON-NLS-1$
- submenu.add(EMPTY_ACTION);
- submenu.addMenuListener(new IMenuListener()
+ final IContributionItem item =
+ menu.find(PageDesignerActionConstants.NAVIGATE_SUBMENU_ID);
+
+ if (item instanceof IMenuManager)
{
- public void menuAboutToShow(IMenuManager manager)
+ final IMenuManager submenu = (IMenuManager) item;
+ final IMenuManager javaMenu = new MenuManager(JSFUIPlugin.getResourceString("ElementEdit.Submenu.JavaNavigation"));//$NON-NLS-1$
+ javaMenu.add(EMPTY_ACTION);
+ javaMenu.addMenuListener(new IMenuListener()
{
- submenu.removeAll();
- addNavigationItems(submenu, element, support);
+ public void menuAboutToShow(IMenuManager manager)
+ {
+ javaMenu.removeAll();
+ addNavigationItems(javaMenu, element, support);
+ }
}
+ );
+
+ submenu.appendToGroup(PageDesignerActionConstants.GROUP_NAVIGATE, javaMenu);
}
- );
- menu.appendToGroup(PageDesignerActionConstants.GROUP_SPECIAL, submenu);
}
private void addNavigationItems(IMenuManager submenu, IDOMElement ele, IJSFCoreSupport support)
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/actions/PageFlowContributor.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/actions/PageFlowContributor.java
index fea96380b..c175805f6 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/actions/PageFlowContributor.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/actions/PageFlowContributor.java
@@ -61,7 +61,7 @@ public class PageFlowContributor implements IContextMenuItemContributor
PageFlowAction action = new PageFlowAction();
action.setId(PageFlowAction.ID);
action.setModel(model);
- IMenuManager viewMgr = manager.findMenuUsingPath(PageDesignerActionConstants.MENUMGR_VIEW_ID);
+ IMenuManager viewMgr = manager.findMenuUsingPath(PageDesignerActionConstants.SHOWVIEW_SUBMENU_ID);
if (viewMgr != null)
{
viewMgr.add(action);
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/converter/jsfcore/JSFCoreConverterFactory.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/converter/jsfcore/JSFCoreConverterFactory.java
index e67c25f5e..59922d4b7 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/converter/jsfcore/JSFCoreConverterFactory.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/converter/jsfcore/JSFCoreConverterFactory.java
@@ -17,7 +17,7 @@ import org.eclipse.jst.pagedesigner.converter.AbstractTagConverter;
import org.eclipse.jst.pagedesigner.converter.HiddenTagConverter;
import org.eclipse.jst.pagedesigner.converter.IConverterFactory;
import org.eclipse.jst.pagedesigner.converter.ITagConverter;
-import org.eclipse.jst.pagedesigner.converter.TagConverterToSpan;
+import org.eclipse.jst.pagedesigner.converter.TagConverterToInlineBlock;
import org.eclipse.jst.pagedesigner.jsf.ui.JSFUIPlugin;
import org.eclipse.swt.graphics.Image;
import org.w3c.dom.Element;
@@ -53,7 +53,7 @@ public class JSFCoreConverterFactory implements IConverterFactory
else if (IJSFConstants.TAG_FACET.equalsIgnoreCase(tagName)
|| IJSFConstants.TAG_VERBATIM.equalsIgnoreCase(tagName))
{
- AbstractTagConverter toSpan = new TagConverterToSpan(element);
+ AbstractTagConverter toSpan = new TagConverterToInlineBlock(element, mode);
toSpan.setMinWidth(10);
toSpan.setMinHeight(10);
toSpan.setNeedBorderDecorator(true);
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/elementedit/jsfhtml/DataTableElementEdit.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/elementedit/jsfhtml/DataTableElementEdit.java
index 7d0d9fe6c..e80095508 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/elementedit/jsfhtml/DataTableElementEdit.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/elementedit/jsfhtml/DataTableElementEdit.java
@@ -127,7 +127,7 @@ public class DataTableElementEdit extends DefaultJSFHTMLElementEdit
*/
private void fillTableMenu(ElementEditPart elePart, int cellColumn, IMenuManager tableMenu)
{
- SelectEditPartAction action = new SelectEditPartAction(JSFUIPlugin
+ SelectEditPartAction action = SelectEditPartAction.create(JSFUIPlugin
.getResourceString("ElementEdit.Submenu.DataTable.SelectTable"), elePart);//$NON-NLS-1$
tableMenu.add(action);
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/elementedit/jsfhtml/PanelGridElementEdit.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/elementedit/jsfhtml/PanelGridElementEdit.java
index 32b412cf8..0426f78f9 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/elementedit/jsfhtml/PanelGridElementEdit.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/elementedit/jsfhtml/PanelGridElementEdit.java
@@ -151,7 +151,7 @@ public class PanelGridElementEdit extends DefaultJSFHTMLElementEdit
*/
private void fillPanelGridMenu(ElementEditPart elePart, int cellRow, int cellColumn, IMenuManager tableMenu)
{
- SelectEditPartAction action = new SelectEditPartAction(JSFUIPlugin
+ SelectEditPartAction action = SelectEditPartAction.create(JSFUIPlugin
.getResourceString("ElementEdit.Submenu.PanelGrid.SelectTable"), elePart);//$NON-NLS-1$
tableMenu.add(action);
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/JMTResources.properties b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/JMTResources.properties
index cb5fede34..12795e5db 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/JMTResources.properties
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/JMTResources.properties
@@ -86,6 +86,7 @@ ActionGroup.Submenu.BorderStyle=Border Style
ActionGroup.Submenu.Color=Color
ActionGroup.Submenu.BackgroundColor=Background Color
ActionGroup.Submenu.Link=Make Link...
+ActionGroup.Submenu.SelectRelative=Select Relative
TableActionGroup.Submenu.SelectTable=Select Table
TableActionGroup.Submenu.InsertRowBefore=Insert Row Before
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/range/RangeActionGroup.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/range/RangeActionGroup.java
index a1c61c40e..4203ccc27 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/range/RangeActionGroup.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/range/RangeActionGroup.java
@@ -12,6 +12,7 @@
package org.eclipse.jst.pagedesigner.actions.range;
import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
@@ -50,27 +51,35 @@ public class RangeActionGroup extends ActionGroup {
*
* @see org.eclipse.ui.actions.ActionGroup#fillContextMenu(org.eclipse.jface.action.IMenuManager)
*/
- public void fillContextMenu(IMenuManager menu) {
+ public void fillContextMenu(IMenuManager contextMenu)
+ {
DesignRange selection = fixUpSelection(getContext().getSelection());
if (selection == null) {
return;
}
- if (getContext().getInput() instanceof IHTMLGraphicalViewer) {
- addParagraphFormatMenu(menu, selection,
- (IHTMLGraphicalViewer) getContext().getInput());
- addHorizontalAlignMenu(menu, selection,
- (IHTMLGraphicalViewer) getContext().getInput());
- addTextStyleMenu(menu, (IHTMLGraphicalViewer) getContext()
- .getInput());
- }
- // TODO: the (commented out) copy of this method does nothing
- //addListModeMenu(menu, selection);
-
- // TODO: the (commented out) copy of this method does nothing
- //addTextFontMenu(menu, selection);
-
- addLinkMenu(menu, selection);
- }
+ IContributionItem styleSubMenuItem =
+ contextMenu.find(PageDesignerActionConstants.STYLE_SUBMENU_ID);
+
+ if (styleSubMenuItem instanceof IMenuManager)
+ {
+ final IMenuManager subMenu = (IMenuManager) styleSubMenuItem;
+ if (getContext().getInput() instanceof IHTMLGraphicalViewer) {
+ addParagraphFormatMenu(subMenu, selection,
+ (IHTMLGraphicalViewer) getContext().getInput());
+ addHorizontalAlignMenu(subMenu, selection,
+ (IHTMLGraphicalViewer) getContext().getInput());
+ addTextStyleMenu(subMenu, (IHTMLGraphicalViewer) getContext()
+ .getInput());
+ }
+ // TODO: the (commented out) copy of this method does nothing
+ //addListModeMenu(menu, selection);
+
+ // TODO: the (commented out) copy of this method does nothing
+ //addTextFontMenu(menu, selection);
+
+ addLinkMenu(subMenu, selection);
+ }
+ }
/**
* @param selection
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/single/SelectEditPartAction.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/single/SelectEditPartAction.java
index 42d9dc531..2cb229902 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/single/SelectEditPartAction.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/single/SelectEditPartAction.java
@@ -11,23 +11,37 @@
*******************************************************************************/
package org.eclipse.jst.pagedesigner.actions.single;
+import org.eclipse.gef.EditPart;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jst.pagedesigner.parts.ElementEditPart;
/**
* @author mengbo
* @version 1.5
*/
-public class SelectEditPartAction extends Action {
- ElementEditPart _part;
+public abstract class SelectEditPartAction extends Action {
+
+ /**
+ * @param text
+ * @param forThisPart
+ * @return a convience object when the edit part that needs selection
+ * is already known when the action is constructed
+ */
+ public static SelectEditPartAction create(final String text, final EditPart forThisPart)
+ {
+ return new SelectEditPartAction(text)
+ {
+ protected EditPart getNewSelection() {
+ return forThisPart;
+ }
+ };
+ }
/**
* @param text
*/
- public SelectEditPartAction(String text, ElementEditPart part) {
+ protected SelectEditPartAction(String text) {
super(text);
- this._part = part;
}
/*
@@ -36,6 +50,12 @@ public class SelectEditPartAction extends Action {
* @see org.eclipse.jface.action.Action#run()
*/
public void run() {
- _part.getViewer().setSelection(new StructuredSelection(_part));
+ final EditPart newSelection = getNewSelection();
+ newSelection.getViewer().setSelection(new StructuredSelection(newSelection));
}
+
+ /**
+ * @return the EditPart onto which selection should be applied.
+ */
+ protected abstract EditPart getNewSelection();
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/single/SelectNodeAction.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/single/SelectNodeAction.java
new file mode 100644
index 000000000..c2d8ba2b6
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/single/SelectNodeAction.java
@@ -0,0 +1,22 @@
+package org.eclipse.jst.pagedesigner.actions.single;
+
+import org.w3c.dom.Node;
+
+/**
+ * An edit part selection action that corresponds to a Node selection
+ */
+public abstract class SelectNodeAction extends SelectEditPartAction
+{
+ protected final Node _node;
+
+
+ /**
+ * @param text
+ * @param curNode
+ */
+ protected SelectNodeAction(String text, Node curNode) {
+ super(text);
+ _node = curNode;
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/single/SelectParentAction.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/single/SelectParentAction.java
new file mode 100644
index 000000000..fc245caae
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/single/SelectParentAction.java
@@ -0,0 +1,49 @@
+package org.eclipse.jst.pagedesigner.actions.single;
+
+import org.eclipse.gef.EditPart;
+import org.w3c.dom.Node;
+
+/**
+ * Given a target node/edit part change selection to its parent
+ *
+ * @author cbateman
+ *
+ */
+public class SelectParentAction extends SelectNodeAction {
+
+ private final EditPart _editPart;
+
+ /**
+ * @param node
+ * @param editPart
+ * @return an action that will change focus selection to the parent
+ * part of node/editPart or a disabled one if there is no parent
+ */
+ public static SelectParentAction create(Node node, EditPart editPart)
+ {
+ Node parent = node.getParentNode();
+
+ if (parent != null)
+ {
+ final String text = "Parent ("+parent.getNodeName()+")";
+ return new SelectParentAction(text, node, editPart);
+ }
+ SelectParentAction action = new SelectParentAction("Parent", node, editPart);
+ action.setEnabled(false);
+ return action;
+ }
+
+ private SelectParentAction(String text, Node node, EditPart editPart)
+ {
+ super(text, node);
+ _editPart = editPart;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.pagedesigner.actions.single.SelectEditPartAction#getNewSelection()
+ */
+ protected EditPart getNewSelection()
+ {
+ return _editPart.getParent();
+ }
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/single/SingleElementActionGroup.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/single/SingleElementActionGroup.java
index d305fd3b5..9bf37dda0 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/single/SingleElementActionGroup.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/single/SingleElementActionGroup.java
@@ -11,7 +11,13 @@
*******************************************************************************/
package org.eclipse.jst.pagedesigner.actions.single;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.gef.EditPart;
import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
@@ -25,8 +31,11 @@ import org.eclipse.jst.pagedesigner.elementedit.IElementEdit;
import org.eclipse.jst.pagedesigner.parts.ElementEditPart;
import org.eclipse.ui.actions.ActionGroup;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.w3c.dom.Element;
/**
+ * Group that constructs context menu items for a single selected element.
+ *
* @author mengbo
* @version 1.5
*/
@@ -49,6 +58,7 @@ public class SingleElementActionGroup extends ActionGroup {
return;
}
IDOMElement ele = (IDOMElement) part.getIDOMNode();
+ addPositionRelativeMenu(menu, part, ele);
addStylelMenu(menu, part, ele);
// next add element special actions
@@ -75,25 +85,90 @@ public class SingleElementActionGroup extends ActionGroup {
return null;
}
+ /**
+ * Add menu actions that select relative to the current position
+ *
+ * @param menu
+ * @param part
+ * @param ele
+ */
+ private void addPositionRelativeMenu(IMenuManager menu, ElementEditPart part, IDOMElement ele)
+ {
+ IContributionItem subMenuItem = menu.find(PageDesignerActionConstants.SELECT_SUBMENU_ID);
+
+ if (subMenuItem instanceof IMenuManager)
+ {
+ final IMenuManager subMenu = (IMenuManager) subMenuItem;
+ // final IMenuManager selectMenu = new MenuManager(PDPlugin
+ // .getResourceString("ActionGroup.Submenu.SelectRelative"));//$NON-NLS-1$
+ SelectParentAction selectParentAction = SelectParentAction.create(ele, part);
+ // Eclipse UI guideline: 6.13
+ // even if there is no parent, a disabled action will be returned by
+ // create and this should be added to the menu
+ subMenu.add(selectParentAction);
+
+ List children = new ArrayList();
+ for (Iterator it = part.getChildren().iterator(); it.hasNext();)
+ {
+ EditPart childPart = (EditPart) it.next();
+
+ // only include selectable element edit part that are modelling
+ // XML elements in the source doc
+ if (childPart instanceof ElementEditPart
+ && ((ElementEditPart)childPart).isSelectable()
+ && ((ElementEditPart)childPart).getModel() instanceof Element)
+ {
+ children.add(SelectNodeAction
+ .create(((Element)((ElementEditPart)childPart).getModel()).getNodeName(), childPart));
+ }
+ }
+
+
+ // don't add the select Children menu unless there are actually children
+ if (children.size() > 0)
+ {
+ MenuManager selectChildMenu = new MenuManager("Children"/*PDPlugin
+ .getResourceString("ActionGroup.Submenu.StyleClasses")*/);
+ subMenu.add(selectChildMenu);
+
+ for (final Iterator it = children.iterator(); it.hasNext();)
+ {
+ selectChildMenu.add((Action)it.next());
+ }
+ }
+ else
+ { // Eclipse UI guideline 6.13
+ // create the child actions even if no children but make it
+ // a disabled option if no children
+ Action childrenAction = new Action("Children"){/* do nothing*/};
+ childrenAction.setEnabled(false);
+ subMenu.add(childrenAction);
+ }
+ }
+ }
+
/**
* @param menu
* @param part
*/
private void addStylelMenu(IMenuManager menu, ElementEditPart part,
IDOMElement ele) {
- // IMenuManager stylesub = new MenuManager("Style");
- IMenuManager stylesub = menu;
-
- addStyle(menu, part, ele);
- addStyleClassesMenu(stylesub, part, ele);
-
- if (DOMStyleUtil.supportStyleAttribute(ele)) {
- // addBorderStyleMenu(stylesub, part, ele);
- addColorMenu(stylesub, part, ele);
- addBackgroundMenu(stylesub, part, ele);
- }
-
- // menu.add(stylesub);
+ IContributionItem subMenu =
+ menu.find(PageDesignerActionConstants.STYLE_SUBMENU_ID);
+
+ if (subMenu instanceof IMenuManager)
+ {
+ final IMenuManager subMenuManager =
+ (IMenuManager) subMenu;
+ addStyle(subMenuManager, part, ele);
+ addStyleClassesMenu(subMenuManager, part, ele);
+
+ if (DOMStyleUtil.supportStyleAttribute(ele)) {
+ // addBorderStyleMenu(stylesub, part, ele);
+ addColorMenu(subMenuManager, part, ele);
+ addBackgroundMenu(subMenuManager, part, ele);
+ }
+ }
}
/**
@@ -102,57 +177,30 @@ public class SingleElementActionGroup extends ActionGroup {
* @param part
* @param ele
*/
- private void addStyle(IMenuManager menu, ElementEditPart part,
+ private void addStyle(IMenuManager subMenu, ElementEditPart part,
IDOMElement ele) {
- StyleSupport.createStyleAction(menu, part, ele);
+ StyleSupport.createStyleAction(subMenu, part, ele);
}
/**
* @param stylesub
* @param part
*/
- private void addStyleClassesMenu(IMenuManager stylesub,
+ private void addStyleClassesMenu(IMenuManager subMenu,
ElementEditPart part, final IDOMElement ele) {
final IMenuManager classmenu = new MenuManager(PDPlugin
.getResourceString("ActionGroup.Submenu.StyleClasses"));//$NON-NLS-1$
StyleClassSupport.createStyleClassActions(classmenu, ele);
- /*
- * classmenu.add(action); classmenu.addMenuListener(new IMenuListener() {
- *
- * public void menuAboutToShow(IMenuManager manager) {
- * classmenu.removeAll();
- * StyleClassSupport.createStyleClassActions(classmenu, ele); } } );
- */
-
- stylesub.appendToGroup(PageDesignerActionConstants.GROUP_STYLE,
- classmenu);
- }
- /**
- * @param stylesub
- * @param part
- */
- /*
- * private void addBorderStyleMenu(IMenuManager stylesub, ElementEditPart
- * part, final IDOMElement ele) { final IMenuManager borderStyleSub = new
- * MenuManager(PDPlugin
- * .getResourceString("ActionGroup.Submenu.BorderStyle"));//$NON-NLS-1$
- * borderStyleSub.add(action);
- *
- * final String mode = BorderStyleSupport.getCurrentBorderStyle(ele);
- *
- * borderStyleSub.addMenuListener(new IMenuListener() { public void
- * menuAboutToShow(IMenuManager manager) { borderStyleSub.removeAll();
- * BorderStyleSupport.createParagraphActions(borderStyleSub, ele, mode); }
- * }); stylesub.appendToGroup(PageDesignerActionConstants.GROUP_STYLE,
- * borderStyleSub); }
- */
+ subMenu.appendToGroup(PageDesignerActionConstants.GROUP_STYLE,
+ classmenu);
+ }
/**
* @param stylesub
* @param part
*/
- private void addColorMenu(IMenuManager stylesub, ElementEditPart part,
+ private void addColorMenu(IMenuManager subMenu, ElementEditPart part,
final IDOMElement ele) {
final IMenuManager colorSub = new MenuManager(PDPlugin
.getResourceString("ActionGroup.Submenu.Color"));//$NON-NLS-1$
@@ -164,7 +212,7 @@ public class SingleElementActionGroup extends ActionGroup {
ICSSPropertyID.ATTR_COLOR);
}
});
- stylesub.appendToGroup(PageDesignerActionConstants.GROUP_STYLE,
+ subMenu.appendToGroup(PageDesignerActionConstants.GROUP_STYLE,
colorSub);
}
@@ -173,7 +221,7 @@ public class SingleElementActionGroup extends ActionGroup {
* @param stylesub
* @param part
*/
- private void addBackgroundMenu(IMenuManager stylesub, ElementEditPart part,
+ private void addBackgroundMenu(IMenuManager subMenu, ElementEditPart part,
final IDOMElement ele) {
final IMenuManager colorSub = new MenuManager(PDPlugin
.getResourceString("ActionGroup.Submenu.BackgroundColor"));//$NON-NLS-1$
@@ -187,7 +235,7 @@ public class SingleElementActionGroup extends ActionGroup {
}
});
- stylesub.appendToGroup(PageDesignerActionConstants.GROUP_STYLE,
+ subMenu.appendToGroup(PageDesignerActionConstants.GROUP_STYLE,
colorSub);
}
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/table/TableActionGroup.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/table/TableActionGroup.java
index ebbcc2b01..d52bb3c09 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/table/TableActionGroup.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/actions/table/TableActionGroup.java
@@ -94,7 +94,7 @@ public class TableActionGroup extends ActionGroup {
*/
private void fillTableMenu(ElementEditPart tablePart, int cellRow,
int cellColumn, IMenuManager tableMenu) {
- SelectEditPartAction action1 = new SelectEditPartAction(
+ SelectEditPartAction action1 = SelectEditPartAction.create(
PDPlugin
.getResourceString("TableActionGroup.Submenu.SelectTable"), tablePart);//$NON-NLS-1$
tableMenu.add(action1);
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/converter/TagConverterToInlineBlock.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/converter/TagConverterToInlineBlock.java
index 3e4a41400..a111932a2 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/converter/TagConverterToInlineBlock.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/converter/TagConverterToInlineBlock.java
@@ -28,14 +28,15 @@ import org.w3c.dom.Element;
* @see org.eclipse.jst.pagedesigner.css2.style.ITagEditInfo#getMinWidth()
*/
public class TagConverterToInlineBlock extends AbstractTagConverter {
- private int model;
+ private int displayMode;
/**
* @param host
+ * @param mode
*/
- public TagConverterToInlineBlock(Element host, int model) {
+ public TagConverterToInlineBlock(Element host, int mode) {
super(host);
- this.model = model;
+ this.displayMode = mode;
}
/*
@@ -45,7 +46,7 @@ public class TagConverterToInlineBlock extends AbstractTagConverter {
*/
protected Element doConvertRefresh() {
Element result = null;
- if (model == IConverterFactory.MODE_PREVIEW) {
+ if (displayMode == IConverterFactory.MODE_PREVIEW) {
result = createElement("span");
copyChildren(getHostElement(), result);
} else {
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/ICSSStyle.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/ICSSStyle.java
index 7b4eade10..6f774fcff 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/ICSSStyle.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/ICSSStyle.java
@@ -26,13 +26,15 @@ import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
*/
public interface ICSSStyle extends INodeAdapter, IAdaptable {
- // the number of extra pixels to add to top, bottom, left and right margin insets
+ // the number of extra pixels to add to top, bottom, left and right padding insets
// in the rendering so that separation between contained components is more
// apparent at design time. These extra pixels are design mode only
+ // Note: margin padding would be preferred but it doesn't seem to affect
+ // bottom padding the way border insets do.
// TODO: this should be set to a preference and probably also use an
// algorithm to determine if the the current box style already has a large
// enough separation offset (perhaps a threshold instead of an additive value)
- public static final int ARTIFICIAL_MARGIN_OFFSET = 4;
+ public static final int ARTIFICIAL_BORDER_OFFSET = 4;
public static final int INHERIT = Integer.MIN_VALUE;
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/style/AbstractStyle.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/style/AbstractStyle.java
index 104835c82..fd00a16de 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/style/AbstractStyle.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/style/AbstractStyle.java
@@ -346,10 +346,10 @@ public class AbstractStyle implements ICSSStyle {
*/
public Insets getMarginInsets() {
if (_marginInsets == null) {
- int top = getInsetProperty(ICSSPropertyID.ATTR_MARGIN_TOP)+ARTIFICIAL_MARGIN_OFFSET;
- int left = getInsetProperty(ICSSPropertyID.ATTR_MARGIN_LEFT)+ARTIFICIAL_MARGIN_OFFSET;
- int bottom = getInsetProperty(ICSSPropertyID.ATTR_MARGIN_BOTTOM)+ARTIFICIAL_MARGIN_OFFSET;
- int right = getInsetProperty(ICSSPropertyID.ATTR_MARGIN_RIGHT)+ARTIFICIAL_MARGIN_OFFSET;
+ int top = getInsetProperty(ICSSPropertyID.ATTR_MARGIN_TOP);
+ int left = getInsetProperty(ICSSPropertyID.ATTR_MARGIN_LEFT);
+ int bottom = getInsetProperty(ICSSPropertyID.ATTR_MARGIN_BOTTOM);
+ int right = getInsetProperty(ICSSPropertyID.ATTR_MARGIN_RIGHT);
_marginInsets = new Insets(top, left, bottom, right);
}
return _marginInsets;
@@ -362,10 +362,10 @@ public class AbstractStyle implements ICSSStyle {
*/
public Insets getPaddingInsets() {
if (_paddingInsets == null) {
- int top = getInsetProperty(ICSSPropertyID.ATTR_PADDING_TOP);
- int left = getInsetProperty(ICSSPropertyID.ATTR_PADDING_LEFT);
- int bottom = getInsetProperty(ICSSPropertyID.ATTR_PADDING_BOTTOM);
- int right = getInsetProperty(ICSSPropertyID.ATTR_PADDING_RIGHT);
+ int top = getInsetProperty(ICSSPropertyID.ATTR_PADDING_TOP)+ARTIFICIAL_BORDER_OFFSET;
+ int left = getInsetProperty(ICSSPropertyID.ATTR_PADDING_LEFT)+ARTIFICIAL_BORDER_OFFSET;
+ int bottom = getInsetProperty(ICSSPropertyID.ATTR_PADDING_BOTTOM)+ARTIFICIAL_BORDER_OFFSET;
+ int right = getInsetProperty(ICSSPropertyID.ATTR_PADDING_RIGHT)+ARTIFICIAL_BORDER_OFFSET;
_paddingInsets = new Insets(top, left, bottom, right);
}
return _paddingInsets;
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/style/DefaultStyle.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/style/DefaultStyle.java
index 4ebb6fe21..8c25a45b9 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/style/DefaultStyle.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/style/DefaultStyle.java
@@ -57,8 +57,8 @@ public class DefaultStyle implements ICSSStyle {
* @see org.eclipse.jst.pagedesigner.css2.ICSSStyle#getMarginInsets()
*/
public Insets getMarginInsets() {
- //return EMPTY_INSETS;
- return new Insets(ARTIFICIAL_MARGIN_OFFSET, ARTIFICIAL_MARGIN_OFFSET, ARTIFICIAL_MARGIN_OFFSET,ARTIFICIAL_MARGIN_OFFSET);
+ return EMPTY_INSETS;
+ //return new Insets(0, 0, 0, 0);
}
/*
@@ -76,7 +76,7 @@ public class DefaultStyle implements ICSSStyle {
* @see org.eclipse.jst.pagedesigner.css2.ICSSStyle#getPaddingInsets()
*/
public Insets getPaddingInsets() {
- return EMPTY_INSETS;
+ return new Insets(ARTIFICIAL_BORDER_OFFSET, ARTIFICIAL_BORDER_OFFSET, ARTIFICIAL_BORDER_OFFSET, ARTIFICIAL_BORDER_OFFSET);
}
/*
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/HTMLEditor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/HTMLEditor.java
index 3db92f16c..b20c4e71e 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/HTMLEditor.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/HTMLEditor.java
@@ -24,12 +24,12 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.gef.DefaultEditDomain;
+import org.eclipse.gef.palette.PaletteRoot;
import org.eclipse.gef.ui.palette.PaletteViewerProvider;
import org.eclipse.gef.ui.views.palette.PalettePage;
import org.eclipse.gef.ui.views.palette.PaletteViewerPage;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextInputListener;
import org.eclipse.jface.text.TextSelection;
import org.eclipse.jface.viewers.IPostSelectionProvider;
import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -40,8 +40,6 @@ import org.eclipse.jst.jsf.common.ui.internal.utils.ResourceUtils;
import org.eclipse.jst.pagedesigner.PDPlugin;
import org.eclipse.jst.pagedesigner.dnd.internal.DesignerSourceMouseTrackAdapter;
import org.eclipse.jst.pagedesigner.editors.pagedesigner.PageDesignerResources;
-import org.eclipse.jst.pagedesigner.editors.palette.DesignerPaletteRoot;
-import org.eclipse.jst.pagedesigner.editors.palette.DesignerPaletteViewerProvider;
import org.eclipse.jst.pagedesigner.editors.palette.impl.PaletteItemManager;
import org.eclipse.jst.pagedesigner.jsp.core.pagevar.IPageVariablesProvider;
import org.eclipse.jst.pagedesigner.jsp.core.pagevar.adapter.IDocumentPageVariableAdapter;
@@ -863,8 +861,6 @@ public class HTMLEditor extends PostSelectionMultiPageEditorPart implements
return getTextEditor().isDirty();
}
- // IPropertySheetPage _propertySheetPage;
-
protected IPropertySheetPage getPropertySheetPage() {
return new org.eclipse.jst.pagedesigner.properties.DesignerTabbedPropertySheetPage(
this, this);
@@ -876,11 +872,16 @@ public class HTMLEditor extends PostSelectionMultiPageEditorPart implements
PaletteItemManager manager = PaletteItemManager
.getInstance(getCurrentProject(getEditorInput()));
manager.reset();
- editDomain.setPaletteRoot(new DesignerPaletteRoot(manager));
-
- PaletteViewerProvider provider = new DesignerPaletteViewerProvider(
- editDomain);
- _paletteViewerPage = new PaletteViewerPage(provider);
+ PaletteRoot paletteRoot = _designViewer.getPaletteRoot();
+ editDomain.setPaletteRoot(paletteRoot);
+
+ _paletteViewerPage = (PaletteViewerPage) _designViewer.getAdapter(PalettePage.class);
+ // if possible, try to use the
+ if (_paletteViewerPage == null)
+ {
+ PaletteViewerProvider provider = _designViewer.getPaletteViewerProvider2();
+ _paletteViewerPage = new PaletteViewerPage(provider);
+ }
}
return _paletteViewerPage;
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/PageDesignerActionConstants.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/PageDesignerActionConstants.java
index 9e17f4584..6f9c12f30 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/PageDesignerActionConstants.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/PageDesignerActionConstants.java
@@ -17,33 +17,126 @@ import org.eclipse.jface.action.Separator;
import org.eclipse.ui.IWorkbenchActionConstants;
/**
+ * Common constants used to id specific locations in the canvas context menu.
+ *
+ * @see SimpleGraphicalEditor.ContextMenuListener for construction order
+ *
* @author mengbo
*/
-public class PageDesignerActionConstants {
+public class PageDesignerActionConstants
+{
+ /**
+ * Id for the standard Edit sub-menu
+ */
+ public static final String EDIT_SUBMENU_ID = "org.eclipse.jst.pagedesigner.context.submenu.edit"; //$NON-NLS-1$
+ /**
+ * Id for the standard Select sub-menu
+ */
+ public static final String SELECT_SUBMENU_ID = "org.eclipse.jst.pagedesigner.context.submenu.select"; //$NON-NLS-1$
+ /**
+ * Id for the standard Insert sub-menu
+ */
+ public static final String INSERT_SUBMENU_ID = "org.eclipse.jst.pagedesigner.context.submenu.insert"; //$NON-NLS-1$
+ /**
+ * Id for the standard Navigate sub-menu
+ */
+ public static final String NAVIGATE_SUBMENU_ID = "org.eclipse.jst.pagedesigner.context.submenu.navigate"; //$NON-NLS-1$
+ /**
+ * Id for the standard Style sub-menu
+ */
+ public static final String STYLE_SUBMENU_ID = "org.eclipse.jst.pagedesigner.context.submenu.style"; //$NON-NLS-1$
+ /**
+ * Id for the standard Show(View) sub-menu
+ */
+ public static final String SHOWVIEW_SUBMENU_ID = "org.eclipse.jst.pagedesigner.viewMenuMgr"; //$NON-NLS-1$
+
+ /**
+ * Undo action group
+ */
public static final String GROUP_UNDO = GEFActionConstants.GROUP_UNDO;
-
+ /**
+ * Standard Edit sub-menu action group
+ */
public static final String GROUP_EDIT = GEFActionConstants.GROUP_EDIT;
-
+ /**
+ * Group for container injected actions
+ */
public static final String GROUP_CONTAINER = "org.eclipse.jst.pagedesigner.container"; //$NON-NLS-1$
-
+ /**
+ * Standard Style sub-menu action group
+ */
public static final String GROUP_STYLE = "org.eclipse.jst.pagedesigner.style"; //$NON-NLS-1$
-
+ /**
+ * Group for third-party contributed tag-specific actions
+ */
public static final String GROUP_SPECIAL = "org.eclipse.jst.pagedesigner.special"; //$NON-NLS-1$
+ /**
+ * Standard Select sub-menu action group
+ */
+ public static final String GROUP_SELECT = "org.eclipse.jst.pagedesigner.select"; //$NON-NLS-1$
+ /**
+ * Standard Insert sub-menu action group
+ */
+ public static final String GROUP_INSERT = "org.eclipse.jst.pagedesigner.insert"; //$NON-NLS-1$
+ /**
+ * Standard Navigate sub-menu action group
+ */
+ public static final String GROUP_NAVIGATE = "org.eclipse.jst.pagedesigner.navigate"; //$NON-NLS-1$
- public static final String MENUMGR_VIEW_ID = "org.eclipse.jst.pagedesigner.viewMenuMgr"; //$NON-NLS-1$
+ /**
+ * Add standard group separators for the Edit sub-menu
+ *
+ * @param menu
+ */
+ public static final void addStandardEditActionGroups(IMenuManager menu)
+ {
+ menu.add(new Separator(GROUP_UNDO));
+ menu.add(new Separator(GROUP_EDIT));
+ }
+
/**
* Adds standard group separators to the given MenuManager.
*
- * @param menu
- * the MenuManager
+ * @param menu the MenuManager
*/
public static final void addStandardActionGroups(IMenuManager menu) {
- menu.add(new Separator(GROUP_UNDO));
- menu.add(new Separator(GROUP_EDIT));
menu.add(new Separator(GROUP_CONTAINER));
- menu.add(new Separator(GROUP_STYLE));
menu.add(new Separator(GROUP_SPECIAL));
menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
}
+
+ /**
+ * Add standard group separators for the Style sub-menu
+ * @param styleSubmenu
+ */
+ public static void addStandardStyleActionGroups(IMenuManager menu)
+ {
+ menu.add(new Separator(GROUP_STYLE));
+ }
+
+ /**
+ * Add standard group separators for the Select sub-menu
+ * @param menu
+ */
+ public static void addStandardSelectActionGroups(IMenuManager menu) {
+ menu.add(new Separator(GROUP_SELECT));
+ }
+
+ /**
+ * Add standard group separators for the Insert sub-menu
+ * @param menu
+ */
+ public static void addStandardInsertActionGroups(IMenuManager menu) {
+ menu.add(new Separator(GROUP_INSERT));
+ }
+
+ /**
+ * Add standard group separators for the Navigate sub-menu
+ * @param menu
+ */
+ public static void addStandardNavigateActionGroups(
+ IMenuManager menu) {
+ menu.add(new Separator(GROUP_NAVIGATE));
+ }
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/SimpleGraphicalEditor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/SimpleGraphicalEditor.java
index cec568571..9078263d2 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/SimpleGraphicalEditor.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/SimpleGraphicalEditor.java
@@ -26,7 +26,7 @@ import org.eclipse.gef.ui.actions.UpdateAction;
import org.eclipse.gef.ui.palette.PaletteViewer;
import org.eclipse.gef.ui.palette.PaletteViewerProvider;
import org.eclipse.gef.ui.palette.FlyoutPaletteComposite.FlyoutPreferences;
-import org.eclipse.gef.ui.parts.GraphicalEditor;
+import org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette;
import org.eclipse.gef.ui.parts.GraphicalViewerKeyHandler;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuListener;
@@ -38,7 +38,6 @@ import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jst.pagedesigner.PDPlugin;
import org.eclipse.jst.pagedesigner.actions.container.ContainerActionGroup;
import org.eclipse.jst.pagedesigner.actions.menuextension.CustomedContextMenuActionGroup;
-import org.eclipse.jst.pagedesigner.actions.menuextension.RunAction;
import org.eclipse.jst.pagedesigner.actions.range.RangeActionGroup;
import org.eclipse.jst.pagedesigner.actions.single.SingleElementActionGroup;
import org.eclipse.jst.pagedesigner.commands.CopyAction;
@@ -49,6 +48,7 @@ import org.eclipse.jst.pagedesigner.dnd.internal.DesignerTemplateTransferDragSou
import org.eclipse.jst.pagedesigner.dnd.internal.LocalSelectionDropTargetListener;
import org.eclipse.jst.pagedesigner.dnd.internal.PDTemplateTransferDropTargetListener;
import org.eclipse.jst.pagedesigner.dnd.internal.ResouceDropTargetListener;
+import org.eclipse.jst.pagedesigner.editors.actions.ActionsMessages;
import org.eclipse.jst.pagedesigner.editors.actions.DesignerUndoRedoAction;
import org.eclipse.jst.pagedesigner.editors.actions.RelatedViewActionGroup;
import org.eclipse.jst.pagedesigner.editors.palette.DesignerPaletteCustomizer;
@@ -89,9 +89,10 @@ import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
/**
* @author mengbo
*/
-public class SimpleGraphicalEditor extends GraphicalEditor implements
+public class SimpleGraphicalEditor extends GraphicalEditorWithFlyoutPalette implements
IDesignViewer, IDocumentSelectionMediator {
- private HTMLEditor _delegate;
+
+ private HTMLEditor _delegate;
private HTMLGraphicalViewer _viewer;
@@ -105,6 +106,7 @@ public class SimpleGraphicalEditor extends GraphicalEditor implements
private IModelStateListener _internalModelListener = new IModelStateListener() {
public void modelAboutToBeChanged(IStructuredModel model) {
+ // do nothing
}
public void modelChanged(IStructuredModel model) {
@@ -113,19 +115,24 @@ public class SimpleGraphicalEditor extends GraphicalEditor implements
public void modelDirtyStateChanged(IStructuredModel model,
boolean isDirty) {
+ // do nothing
}
public void modelResourceDeleted(IStructuredModel model) {
+ // do nothing
}
public void modelResourceMoved(IStructuredModel oldModel,
IStructuredModel newModel) {
+ // do nothing
}
public void modelAboutToBeReinitialized(IStructuredModel structuredModel) {
+ // do nothing
}
public void modelReinitialized(IStructuredModel structuredModel) {
+ // do nothing
}
};
@@ -200,6 +207,8 @@ public class SimpleGraphicalEditor extends GraphicalEditor implements
}
}
});
+
+ super.initializeGraphicalViewer();
}
protected void initializeContextMenu() {
@@ -208,79 +217,7 @@ public class SimpleGraphicalEditor extends GraphicalEditor implements
menuMgr.setRemoveAllWhenShown(true);
Menu menu = menuMgr.createContextMenu(gviewer);
gviewer.setMenu(menu);
- menuMgr.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager menuMgr1) {
- PageDesignerActionConstants.addStandardActionGroups(menuMgr1);
-
- menuMgr1.add(new RunAction(SimpleGraphicalEditor.this._delegate,
- RunAction.LAUNCH_MODE_RUN));
- menuMgr1.add(new RunAction(SimpleGraphicalEditor.this._delegate,
- RunAction.LAUNCH_MODE_DEBUG));
- // FIXME: for UNDO/REDO, maybe need also wrap them in
- // DesignerCommand.
- // otherwise don't have validate() called after the source
- // change.
- menuMgr1.appendToGroup(PageDesignerActionConstants.GROUP_UNDO,
- getAction(IWorkbenchActionDefinitionIds.UNDO));
- menuMgr1.appendToGroup(PageDesignerActionConstants.GROUP_UNDO,
- getAction(IWorkbenchActionDefinitionIds.REDO));
-
- menuMgr1.appendToGroup(PageDesignerActionConstants.GROUP_EDIT,
- getAction(IWorkbenchActionDefinitionIds.CUT));
- menuMgr1.appendToGroup(PageDesignerActionConstants.GROUP_EDIT,
- getAction(IWorkbenchActionDefinitionIds.COPY));
- menuMgr1.appendToGroup(PageDesignerActionConstants.GROUP_EDIT,
- getAction(IWorkbenchActionDefinitionIds.PASTE));
- menuMgr1.appendToGroup(PageDesignerActionConstants.GROUP_EDIT,
- getAction(IWorkbenchActionDefinitionIds.DELETE));
-
- ContainerActionGroup containerActionGroup = new ContainerActionGroup();
- ActionContext context = new ActionContext(_viewer
- .getSelection());
- context.setInput(_viewer);
- containerActionGroup.setContext(context);
- containerActionGroup.fillContextMenu(menuMgr1);
- containerActionGroup.setContext(null);
-
- // TableActionGroup tableActionGroup = new TableActionGroup();
- // tableActionGroup.setContext(new
- // ActionContext(_viewer.getSelection()));
- // tableActionGroup.fillContextMenu(menuMgr);
- // tableActionGroup.setContext(null);
-
- RangeActionGroup rangeActionGroup = new RangeActionGroup();
- context = new ActionContext(_viewer.getSelection());
- context.setInput(_viewer);
- rangeActionGroup.setContext(context);
- rangeActionGroup.fillContextMenu(menuMgr1);
- rangeActionGroup.setContext(null);
-
- SingleElementActionGroup singleActionGroup = new SingleElementActionGroup();
- singleActionGroup.setContext(new ActionContext(_viewer
- .getSelection()));
- singleActionGroup.fillContextMenu(menuMgr1);
- singleActionGroup.setContext(null);
-
- // IAction customize =
- // graphicalActionRegistry.getAction(CustomizeJavaBeanAction.ACTION_ID);
- // if (customize.isEnabled())
- // menuMgr.appendToGroup(GEFActionConstants.GROUP_EDIT,
- // customize);
-
- RelatedViewActionGroup viewMenu = new RelatedViewActionGroup();
- viewMenu.fillContextMenu(menuMgr1);
-
- CustomedContextMenuActionGroup customedMenu = new CustomedContextMenuActionGroup();
- customedMenu.setContext(new ActionContext(_viewer
- .getSelection()));
- customedMenu.setModel(_model);
- customedMenu.setParentControl(_viewer.getControl());
- customedMenu.fillContextMenu(menuMgr1);
- customedMenu.setContext(null);
- customedMenu.setParentControl(null);
- customedMenu.setModel(null);
- }
- });
+ menuMgr.addMenuListener(new ContextMenuListener());
getSite().registerContextMenu(
"HTMLVisualEditor.contextMenu", menuMgr, _viewer); //$NON-NLS-1$
}
@@ -547,6 +484,11 @@ public class SimpleGraphicalEditor extends GraphicalEditor implements
};
}
+ PaletteViewerProvider getPaletteViewerProvider2()
+ {
+ return getPaletteViewerProvider();
+ }
+
/*
* (non-Javadoc)
*
@@ -663,4 +605,131 @@ public class SimpleGraphicalEditor extends GraphicalEditor implements
});
}
}
+
+ private final class ContextMenuListener implements IMenuListener
+ {
+ public void menuAboutToShow(IMenuManager menuMgr1)
+ {
+ // add standarized sub-menus
+ addEditSubMenu(menuMgr1);
+ addSelectSubMenu(menuMgr1);
+ addInsertSubMenu(menuMgr1);
+ addNavigateSubMenu(menuMgr1);
+ addStyleSubMenu(menuMgr1);
+
+ // add separators that mark standard append locations in the main
+ // context menu
+ PageDesignerActionConstants.addStandardActionGroups(menuMgr1);
+
+ // TODO: Run/Debug?
+
+ // insert ElementEdit contributed menu items
+ final ContainerActionGroup containerActionGroup =
+ new ContainerActionGroup();
+ ActionContext context = new ActionContext(_viewer
+ .getSelection());
+ context.setInput(_viewer);
+ containerActionGroup.setContext(context);
+ containerActionGroup.fillContextMenu(menuMgr1);
+ containerActionGroup.setContext(null);
+
+ // TODO: TableActionGroup
+
+ // if on a text context, (instead of a ElementEditPart),
+ // add text styling actions
+ final RangeActionGroup rangeActionGroup = new RangeActionGroup();
+ context = new ActionContext(_viewer.getSelection());
+ context.setInput(_viewer);
+ rangeActionGroup.setContext(context);
+ rangeActionGroup.fillContextMenu(menuMgr1);
+ rangeActionGroup.setContext(null);
+
+ // Add actions for single ElementEditPart's that are common
+ // to all
+ final SingleElementActionGroup singleActionGroup =
+ new SingleElementActionGroup();
+ singleActionGroup.setContext(new ActionContext(_viewer
+ .getSelection()));
+ singleActionGroup.fillContextMenu(menuMgr1);
+ singleActionGroup.setContext(null);
+
+ // add "Show In" actions...
+ final RelatedViewActionGroup viewMenu = new RelatedViewActionGroup(getEditDomain());
+ context = new ActionContext(_viewer.getSelection());
+ viewMenu.setContext(context);
+ viewMenu.fillContextMenu(menuMgr1);
+
+ // add extension point contributed menu actions
+ CustomedContextMenuActionGroup customedMenu = new CustomedContextMenuActionGroup();
+ customedMenu.setContext(new ActionContext(_viewer
+ .getSelection()));
+ customedMenu.setModel(_model);
+ customedMenu.setParentControl(_viewer.getControl());
+ customedMenu.fillContextMenu(menuMgr1);
+ customedMenu.setContext(null);
+ customedMenu.setParentControl(null);
+ customedMenu.setModel(null);
+ }
+
+ private void addNavigateSubMenu(IMenuManager menu) {
+ final IMenuManager navigateSubmenu =
+ new MenuManager(ActionsMessages.getString("Navigate.Menu") //$NON-NLS-1$
+ , PageDesignerActionConstants.NAVIGATE_SUBMENU_ID);
+ menu.add(navigateSubmenu);
+ PageDesignerActionConstants.addStandardNavigateActionGroups(navigateSubmenu);
+ }
+
+ private void addEditSubMenu(IMenuManager menu)
+ {
+ final IMenuManager editSubmenu
+ = new MenuManager(ActionsMessages.getString("Edit.Menu") //$NON-NLS-1$
+ , PageDesignerActionConstants.EDIT_SUBMENU_ID);
+ menu.add(editSubmenu);
+ PageDesignerActionConstants.addStandardEditActionGroups(editSubmenu);
+
+ // FIXME: for UNDO/REDO, maybe need also wrap them in
+ // DesignerCommand.
+ // otherwise don't have validate() called after the source
+ // change.
+ editSubmenu.appendToGroup(PageDesignerActionConstants.GROUP_UNDO,
+ getAction(IWorkbenchActionDefinitionIds.UNDO));
+ editSubmenu.appendToGroup(PageDesignerActionConstants.GROUP_UNDO,
+ getAction(IWorkbenchActionDefinitionIds.REDO));
+
+ editSubmenu.appendToGroup(PageDesignerActionConstants.GROUP_EDIT,
+ getAction(IWorkbenchActionDefinitionIds.CUT));
+ editSubmenu.appendToGroup(PageDesignerActionConstants.GROUP_EDIT,
+ getAction(IWorkbenchActionDefinitionIds.COPY));
+ editSubmenu.appendToGroup(PageDesignerActionConstants.GROUP_EDIT,
+ getAction(IWorkbenchActionDefinitionIds.PASTE));
+ editSubmenu.appendToGroup(PageDesignerActionConstants.GROUP_EDIT,
+ getAction(IWorkbenchActionDefinitionIds.DELETE));
+
+ }
+
+ private void addStyleSubMenu(IMenuManager menu)
+ {
+ final IMenuManager styleSubmenu =
+ new MenuManager(ActionsMessages.getString("Style.Menu") //$NON-NLS-1$
+ , PageDesignerActionConstants.STYLE_SUBMENU_ID);
+ menu.add(styleSubmenu);
+ PageDesignerActionConstants.addStandardStyleActionGroups(styleSubmenu);
+ }
+ private void addInsertSubMenu(IMenuManager menu) {
+ final IMenuManager insertSubmenu =
+ new MenuManager(ActionsMessages.getString("Insert.Menu") //$NON-NLS-1$
+ , PageDesignerActionConstants.INSERT_SUBMENU_ID);
+ menu.add(insertSubmenu);
+ PageDesignerActionConstants.addStandardInsertActionGroups(insertSubmenu);
+ }
+
+ private void addSelectSubMenu(IMenuManager menu)
+ {
+ final IMenuManager selectSubMenu =
+ new MenuManager(ActionsMessages.getString("Select.Menu") //$NON-NLS-1$
+ , PageDesignerActionConstants.SELECT_SUBMENU_ID);
+ menu.add(selectSubMenu);
+ PageDesignerActionConstants.addStandardSelectActionGroups(selectSubMenu);
+ }
+ }
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/ActionsMessages.properties b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/ActionsMessages.properties
index 9907f3935..ad1f45958 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/ActionsMessages.properties
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/ActionsMessages.properties
@@ -10,9 +10,10 @@ DesignActionBarFactory.Bold.Text=Bold
DesignActionBarFactory.Small.Text=Small
DesignActionBarFactory.Big.Text=Big
PaletteViewAction.Menu.PaletteView=Palette
-RelatedViewActionGroup.Menu.ShowView=Show View
+RelatedViewActionGroup.Menu.ShowView=Show
PropertiesViewAction.Menu.Properties=Properties
DataBindingViewAction.Menu.DataBinding=DataBinding
+OutlineViewAction.Menu.OutlineView=Outline
DesignerStyleActionGroup.CommandLabel.V=V
DesignerStyleActionGroup.CommandLabel.H=H
DesignerStyleActionGroup.CommandLabel.D=D
@@ -24,4 +25,9 @@ DesignerStyleActionGroup.CommandLabel.S.Tooltip=Only Show Source Page
DesignerUndoRedoAction.UNDO=Undo
DesignerUndoRedoAction.REDO=Redo
DesignerUndoRedoAction.UNDO_LABEL=Undo {0}
-DesignerUndoRedoAction.REDO_LABEL=Redo {0} \ No newline at end of file
+DesignerUndoRedoAction.REDO_LABEL=Redo {0}
+Select.Menu=Select
+Edit.Menu=Edit
+Navigate.Menu=Navigate
+Style.Menu=Style
+Insert.Menu=Insert
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/DataBindingViewAction.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/DataBindingViewAction.java
index 9d55a058b..a3350c853 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/DataBindingViewAction.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/DataBindingViewAction.java
@@ -47,7 +47,6 @@ public class DataBindingViewAction extends Action {
} catch (PartInitException e) {
_log.error("Error opening the DataBindingView");
}
-
}
private IWorkbenchPage getPage() {
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/OutlineViewAction.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/OutlineViewAction.java
new file mode 100644
index 000000000..813e1e23c
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/OutlineViewAction.java
@@ -0,0 +1,15 @@
+package org.eclipse.jst.pagedesigner.editors.actions;
+
+import org.eclipse.ui.IPageLayout;
+
+public class OutlineViewAction extends ShowViewAction
+{
+ public final static String ID = "org.eclipse.jst.pagedesigner.editors.actions.OutlineViewAction"; //$NON-NLS-1$
+
+ public OutlineViewAction()
+ {
+ super(ActionsMessages
+ .getString("OutlineViewAction.Menu.OutlineView")
+ , IPageLayout.ID_OUTLINE); //$NON-NLS-1$
+ }
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/PaletteViewAction.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/PaletteViewAction.java
index d910ccdbc..a167800ec 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/PaletteViewAction.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/PaletteViewAction.java
@@ -11,46 +11,96 @@
*******************************************************************************/
package org.eclipse.jst.pagedesigner.editors.actions;
+import org.eclipse.gef.EditDomain;
import org.eclipse.gef.ui.views.palette.PaletteView;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jst.jsf.common.ui.internal.logging.Logger;
-import org.eclipse.jst.pagedesigner.PDPlugin;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
+import org.w3c.dom.Element;
/**
* @author mengbo
* @version 1.5
*/
-public class PaletteViewAction extends Action {
+public class PaletteViewAction extends ShowViewAction {
public final static String ID = "org.eclipse.jst.pagedesigner.editors.actions.PaletteViewAction"; //$NON-NLS-1$
-
- private static Logger _log = PDPlugin.getLogger(PaletteViewAction.class);
-
- public PaletteViewAction() {
- setText(ActionsMessages.getString("PaletteViewAction.Menu.PaletteView")); //$NON-NLS-1$
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.action.IAction#run()
- */
- public void run() {
- try {
- getPage().showView(PaletteView.ID);
- } catch (PartInitException e) {
- _log.info("Open the Palette View", e);
- }
-
- }
-
- private IWorkbenchPage getPage() {
- IWorkbench workbench = PlatformUI.getWorkbench();
- IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
- return window.getActivePage();
+ private final Element _element;
+ private final EditDomain _editDomain;
+
+ public PaletteViewAction(Element element, EditDomain editDomain) {
+ super(ActionsMessages.getString("PaletteViewAction.Menu.PaletteView")
+ , PaletteView.ID); //$NON-NLS-1$
+ _element = element;
+ _editDomain = editDomain;
}
+
+ /**
+ * Add to default behavior because pallete view doesn't automatically track
+ * selection to currently selected edit part
+ */
+ public void run()
+ {
+ super.run();
+
+ //TODO: for some reason getting a palette item to select doesn't work
+// if (_element != null && _editDomain != null)
+// {
+// PaletteItemManager manager = PaletteItemManager
+// .getInstance(getProject(_element));
+// if (manager != null) {
+// IPaletteItemCategory category = manager.findOrCreateCategory(CMUtil
+// .getElementNamespaceURI(_element), null);
+//
+// if (category != null) {
+// String name = _element.getLocalName();
+// if (category.getURI().equals(IJMTConstants.URI_JSP)) {
+// name = _element.getTagName();
+// }
+// IPaletteItemDescriptor descriptor = category
+// .getItemByTagName(name);
+// if (descriptor != null)
+// {
+// PaletteEntry paletteEntry = descriptor.getPaletteEntry();
+// final RootEditPart editPart =
+// _editDomain.getPaletteViewer().getRootEditPart();
+// EditPart newSelection = findMatchingPart(editPart.getContents(), paletteEntry);
+//
+// if (newSelection != null)
+// {
+// _editDomain.getPaletteViewer().setSelection(new StructuredSelection(newSelection));
+// }
+// }
+// }
+// }
+// }
+ }
+
+// private EditPart findMatchingPart(EditPart curPart, PaletteEntry paletteEntry)
+// {
+// EditPart match = null;
+//
+// if (curPart.getModel() == paletteEntry)
+// {
+// return curPart;
+// }
+//
+// for (final Iterator it = curPart.getChildren().iterator(); it.hasNext();)
+// {
+// match = findMatchingPart((EditPart)it.next(), paletteEntry);
+//
+// if (match != null)
+// {
+// break;
+// }
+// }
+//
+// return match;
+// }
+// private IProject getProject(Element element) {
+// if (element instanceof IDOMElement) {
+// IDOMModel model = ((IDOMElement) element).getModel();
+// IFile file = StructuredModelUtil.getFileFor(model);
+// if (file != null) {
+// return file.getProject();
+// }
+// }
+// return null;
+// }
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/PropertiesViewAction.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/PropertiesViewAction.java
index c6dcdd3db..77a085d9a 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/PropertiesViewAction.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/PropertiesViewAction.java
@@ -11,46 +11,18 @@
*******************************************************************************/
package org.eclipse.jst.pagedesigner.editors.actions;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jst.jsf.common.ui.internal.logging.Logger;
-import org.eclipse.jst.pagedesigner.PDPlugin;
import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
/**
* @author mengbo
*/
-public class PropertiesViewAction extends Action {
+public class PropertiesViewAction extends ShowViewAction {
public final static String ID = "org.eclipse.jst.pagedesigner.editors.actions.PropertiesViewAction"; //$NON-NLS-1$
- private static Logger _log = PDPlugin.getLogger(PropertiesViewAction.class);
-
- public PropertiesViewAction() {
- setText(ActionsMessages
- .getString("PropertiesViewAction.Menu.Properties")); //$NON-NLS-1$
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.action.IAction#run()
- */
- public void run() {
- try {
- getPage().showView(IPageLayout.ID_PROP_SHEET);
- } catch (PartInitException e) {
- _log.info("Open the Properties View", e);
- }
-
- }
-
- private IWorkbenchPage getPage() {
- IWorkbench workbench = PlatformUI.getWorkbench();
- IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
- return window.getActivePage();
+ public PropertiesViewAction()
+ {
+ super(ActionsMessages
+ .getString("PropertiesViewAction.Menu.Properties")
+ , IPageLayout.ID_PROP_SHEET); //$NON-NLS-1$
}
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/RelatedViewActionGroup.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/RelatedViewActionGroup.java
index 4fd500745..dfdf38589 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/RelatedViewActionGroup.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/RelatedViewActionGroup.java
@@ -18,21 +18,35 @@ import java.util.Map;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.Platform;
+import org.eclipse.gef.EditDomain;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jst.pagedesigner.editors.PageDesignerActionConstants;
+import org.eclipse.jst.pagedesigner.parts.ElementEditPart;
import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.actions.ActionContext;
import org.eclipse.ui.actions.ActionGroup;
import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.w3c.dom.Element;
/**
* @author mengbo
* @version 1.5
*/
-public class RelatedViewActionGroup extends ActionGroup {
+public class RelatedViewActionGroup extends ActionGroup
+{
+ private final EditDomain _editDomain;
+
+ public RelatedViewActionGroup(EditDomain editDomain)
+ {
+ _editDomain = editDomain;
+ }
+
/*
* (non-Javadoc)
*
@@ -43,17 +57,20 @@ public class RelatedViewActionGroup extends ActionGroup {
final IMenuManager viewMgr = new MenuManager(ActionsMessages
.getString("RelatedViewActionGroup.Menu.ShowView"),//$NON-NLS-1$
- PageDesignerActionConstants.MENUMGR_VIEW_ID);
+ PageDesignerActionConstants.SHOWVIEW_SUBMENU_ID);
viewMgr.add(new Action() {
// add noop action; TODO: why?
});
viewMgr.setRemoveAllWhenShown(true);
+ final ActionContext context = getContext();
viewMgr.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
+ // TODO: don't like this at all
String[] views = { "org.eclipse.ui.views.PropertySheet",
- "org.eclipse.gef.ui.palette_view"};
-// "org.eclipse.jst.pagedesigner.databinding.ui.views.DataBindingsView" };
- Map icons = getIconForView(views);
+ "org.eclipse.gef.ui.palette_view", "org.eclipse.ui.views.ContentOutline"};
+
+ Map icons = getIconForView(views);
+ // TODO: is this the best way to do this?
if (manager.find(PropertiesViewAction.ID) == null) {
Action action = new PropertiesViewAction();
action.setId(PropertiesViewAction.ID);
@@ -62,21 +79,39 @@ public class RelatedViewActionGroup extends ActionGroup {
manager.add(action);
}
if (manager.find(PaletteViewAction.ID) == null) {
- Action action = new PaletteViewAction();
- action.setId(PaletteViewAction.ID);
- action.setImageDescriptor((ImageDescriptor) icons
- .get(views[1]));
- manager.add(action);
- }
- /*
- if (manager.find(DataBindingViewAction.ID) == null) {
- Action action = new DataBindingViewAction();
- action.setId(DataBindingViewAction.ID);
- action.setImageDescriptor((ImageDescriptor) icons
- .get(views[2]));
- manager.add(action);
+ ISelection selection = context.getSelection();
+ if (selection instanceof IStructuredSelection)
+ {
+ IStructuredSelection strucSelection =
+ (IStructuredSelection) selection;
+ Action action = null;
+
+ if (strucSelection.getFirstElement() instanceof ElementEditPart)
+ {
+ Element selectedElem = (Element)
+ ((ElementEditPart) strucSelection.getFirstElement()).getModel();
+ action = new PaletteViewAction(selectedElem, _editDomain);
+ }
+ else
+ {
+ // if can't determine, just default open the palette
+ action = new PaletteViewAction(null, null);
+ }
+ action.setId(PaletteViewAction.ID);
+ action.setImageDescriptor((ImageDescriptor) icons
+ .get(views[1]));
+ manager.add(action);
+ }
}
- */
+ if (manager.find(OutlineViewAction.ID) == null)
+ {
+ Action action = new OutlineViewAction();
+ action.setId(OutlineViewAction.ID);
+ action.setImageDescriptor((ImageDescriptor) icons
+ .get(views[2]));
+ manager.add(action);
+ }
+
}
});
menu.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS, viewMgr);
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/ShowViewAction.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/ShowViewAction.java
new file mode 100644
index 000000000..8db2a83f1
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/actions/ShowViewAction.java
@@ -0,0 +1,46 @@
+package org.eclipse.jst.pagedesigner.editors.actions;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jst.jsf.common.ui.internal.logging.Logger;
+import org.eclipse.jst.pagedesigner.PDPlugin;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * TODO: isn't there a workbench registry action for this?
+ * @author cbateman
+ *
+ */
+public class ShowViewAction extends Action {
+ private static Logger _log = PDPlugin.getLogger(PropertiesViewAction.class);
+ private final String _viewId;
+
+ public ShowViewAction(String text, String viewId)
+ {
+ _viewId = viewId;
+ setText(text); //$NON-NLS-1$
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.action.IAction#run()
+ */
+ public void run() {
+ try {
+ getPage().showView(_viewId);
+ } catch (PartInitException e) {
+ _log.info("Open the view: "+_viewId, e);
+ }
+
+ }
+
+ private IWorkbenchPage getPage() {
+ IWorkbench workbench = PlatformUI.getWorkbench();
+ IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
+ return window.getActivePage();
+ }
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/DesignerPaletteViewer.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/DesignerPaletteViewer.java
index f2edb7489..aee88e115 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/DesignerPaletteViewer.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/DesignerPaletteViewer.java
@@ -184,7 +184,6 @@ public class DesignerPaletteViewer extends PaletteViewer {
}
public void setPaletteRoot(PaletteRoot root) {
- // TODO Auto-generated method stub
super.setPaletteRoot(root);
// add palette model change listener
// PaletteRoot root = getPaletteRoot();
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/html/TableElementEdit.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/html/TableElementEdit.java
index a0ad741ae..1febdd232 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/html/TableElementEdit.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/html/TableElementEdit.java
@@ -133,7 +133,7 @@ public class TableElementEdit extends AbstractElementEdit {
*/
private void fillTableMenu(ElementEditPart tablePart, int cellRow,
int cellColumn, IMenuManager tableMenu) {
- SelectEditPartAction action1 = new SelectEditPartAction(
+ SelectEditPartAction action1 = SelectEditPartAction.create(
PDPlugin.getResourceString("ElementEdit.Submenu.SelectTable"), tablePart);//$NON-NLS-1$
tableMenu.add(action1);
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/viewer/DesignPosition.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/viewer/DesignPosition.java
index 5111dac4c..3e10f3213 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/viewer/DesignPosition.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/viewer/DesignPosition.java
@@ -36,8 +36,6 @@ public class DesignPosition {
public DesignPosition(EditPart part, int offset) {
_containerPart = part;
_offset = offset;
-
- // TODO: ?? int[] a = new int[] { 0, 0 };
}
/**

Back to the top