Author: mareshkau
Date: 2008-12-22 11:13:40 -0500 (Mon, 22 Dec 2008)
New Revision: 12804
Added:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/ReplaceAction.java
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/BaseActionManager.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/ITextNodeSplitter.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/MenuCreationHelper.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/InsertAction.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-3428, replace action has been created for context
menu
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/BaseActionManager.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/BaseActionManager.java 2008-12-22
15:07:13 UTC (rev 12803)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/BaseActionManager.java 2008-12-22
16:13:40 UTC (rev 12804)
@@ -54,6 +54,9 @@
public static final String INSERT_BEFORE_MENU = "Insert Before";
public static final String INSERT_AFTER_MENU = "Insert After";
public static final String INSERT_TAG_MENU = "Insert Tag";
+ public static final String REPLACE_TAG_MENU = XMLCommonResources
+ .getInstance().getString("_UI_MENU_REPLACE_WITH"); //$NON-NLS-1$
+
private ActionHelper actionHelper;
@@ -374,15 +377,11 @@
// 'Replace With...' actions
//
//Fix for JBIDE-3428
-// IMenuManager replaceWithMenu = new MyMenuManager(XMLCommonResources
-// .getInstance().getString("_UI_MENU_REPLACE_WITH")); //$NON-NLS-1$
-// menu.add(replaceWithMenu);
+ IMenuManager replaceWithMenu = new MyMenuManager(BaseActionManager.REPLACE_TAG_MENU);
+ menu.add(replaceWithMenu);
if (modelQuery.getEditMode() == ModelQuery.EDIT_MODE_CONSTRAINED_STRICT
&& selectedNodeList.size() > 0) {
- IMenuManager replaceWithMenu = new MyMenuManager(XMLCommonResources
- .getInstance().getString("_UI_MENU_REPLACE_WITH")); //$NON-NLS-1$
- menu.add(replaceWithMenu);
Node node = (Node) selectedNodeList.get(0);
Node parentNode = node.getParentNode();
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/ITextNodeSplitter.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/ITextNodeSplitter.java 2008-12-22
15:07:13 UTC (rev 12803)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/ITextNodeSplitter.java 2008-12-22
16:13:40 UTC (rev 12804)
@@ -31,6 +31,10 @@
*
*/
public static final int INSERT_AFTER = 3;
+ /**
+ * Replace action identifier
+ */
+ public static final int REPLACE_TAG = 4;
/**
*
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/MenuCreationHelper.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/MenuCreationHelper.java 2008-12-22
15:07:13 UTC (rev 12803)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/MenuCreationHelper.java 2008-12-22
16:13:40 UTC (rev 12804)
@@ -41,6 +41,7 @@
import org.jboss.tools.vpe.editor.mapping.VpeNodeMapping;
import org.jboss.tools.vpe.editor.menu.BaseActionManager.MyMenuManager;
import org.jboss.tools.vpe.editor.menu.action.InsertAction;
+import org.jboss.tools.vpe.editor.menu.action.ReplaceAction;
import org.jboss.tools.vpe.editor.menu.action.VpeMenuListener;
import org.jboss.tools.vpe.editor.menu.action.VpeTextOperationAction;
import org.jboss.tools.vpe.editor.mozilla.MozillaEditor;
@@ -182,6 +183,11 @@
} else if (NodeActionManager.INSERT_AFTER_MENU.equals(mm.getMenuText())) {
type = ITextNodeSplitter.INSERT_AFTER;
region = new Point(NodesManagingUtil.getEndOffsetNode(node), 0);
+ } else if (NodeActionManager.REPLACE_TAG_MENU.equals(mm.getMenuText())){
+ //added by Max Areshkau, fix for JBIDE-3428
+ type = ITextNodeSplitter.REPLACE_TAG;
+ //post start and end offset of node
+ region = new
Point(NodesManagingUtil.getStartOffsetNode(node),NodesManagingUtil.getNodeLength(node));
}
listenContextMenu(mm, region, type);
}
@@ -483,12 +489,36 @@
if (type == ITextNodeSplitter.INSERT_AROUND &&
(endText == null || Constants.EMPTY.equals(endText))) {
continue;
+ } if(type ==ITextNodeSplitter.REPLACE_TAG){
+ //mareshkau, fix for JBIDE-3428, here we create replace action
+ createReplaceAction(menu, region,items[i]);
+ continue;
}
+
createInsertAction(menu, region, items[i]);
}
}
+ /**
+ * @author mareshkau
+ * Creates replace Actions for VPE context menu
+ *
+ */
+ private void createReplaceAction(MenuManager menu, Point region, XModelObject item){
+ String tagName = getTagName(menu, region, item);
+ menu.add(new ReplaceAction(tagName, region, item, pageContext, sourceEditor));
+ }
+
private void createInsertAction(MenuManager menu, Point region, XModelObject item) {
+ String tagName = getTagName(menu, region, item);
+ menu.add(new InsertAction(tagName, region, item, pageContext, sourceEditor));
+ }
+ /**
+ * @author mareshkau
+ * Returns tag name for insert and replace actions
+ * @return tag name
+ */
+ private String getTagName(MenuManager menu, Point region, XModelObject item) {
XModelObject parent = item.getParent();
String uri = (parent == null) ? Constants.EMPTY :
parent.getAttributeValue(URIConstants.LIBRARY_URI);
String defaultPrefix = (parent == null) ? Constants.EMPTY :
parent.getAttributeValue(URIConstants.DEFAULT_PREFIX);
@@ -498,10 +528,9 @@
PaletteInsertHelper.applyPrefix(texts, sourceEditor, tagName, uri, defaultPrefix);
}
tagName = texts[0];
-
- menu.add(new InsertAction(tagName, region, item, pageContext, sourceEditor));
+
+ return tagName;
}
-
/**
* For inner usage only. Was create just for simplicity.
*/
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/InsertAction.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/InsertAction.java 2008-12-22
15:07:13 UTC (rev 12803)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/InsertAction.java 2008-12-22
16:13:40 UTC (rev 12804)
@@ -102,4 +102,26 @@
p.put("selectionProvider", selProvider); //$NON-NLS-1$
PaletteInsertHelper.insertIntoEditor(sourceEditor.getTextViewer(), p);
}
-}
\ No newline at end of file
+
+ /**
+ * @return the region
+ */
+ protected Point getRegion() {
+ return region;
+ }
+
+ /**
+ * @return the pageContext
+ */
+ protected VpePageContext getPageContext() {
+ return pageContext;
+ }
+
+ /**
+ * @return the sourceEditor
+ */
+ protected StructuredTextEditor getSourceEditor() {
+ return sourceEditor;
+ }
+
+}
Added:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/ReplaceAction.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/ReplaceAction.java
(rev 0)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/ReplaceAction.java 2008-12-22
16:13:40 UTC (rev 12804)
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.vpe.editor.menu.action;
+
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.vpe.editor.context.VpePageContext;
+
+/**
+ * Replace Action for visual editor from content menu
+ * @author mareshkau
+ *
+ */
+public class ReplaceAction extends InsertAction{
+
+ /**
+ *
+ * @param title
+ * @param region
+ * @param item
+ * @param pageContext
+ * @param sourceEditor
+ */
+ public ReplaceAction(String title, Point region, XModelObject item,
+ VpePageContext pageContext, StructuredTextEditor sourceEditor) {
+ super(title, region, item, pageContext, sourceEditor);
+ }
+
+ @Override
+ public void run() {
+ getSourceEditor().getTextViewer().getTextWidget().replaceTextRange(getRegion().x,
getRegion().y, ""); //$NON-NLS-1$
+ getRegion().y=0;
+ super.run();
+ }
+
+
+}