diff options
author | crogers | 2010-04-23 18:03:30 +0000 |
---|---|---|
committer | crogers | 2010-04-23 18:03:30 +0000 |
commit | 2475261b903298ce063c365be8a5271bc7a5ee17 (patch) | |
tree | ab8e52b2dd8b6bf56ed542b2b913f0a3b66dc66f /jsf | |
parent | d0f82d193872ce61bc37915d1e4d3b3d06340872 (diff) | |
download | webtools.jsf-2475261b903298ce063c365be8a5271bc7a5ee17.tar.gz webtools.jsf-2475261b903298ce063c365be8a5271bc7a5ee17.tar.xz webtools.jsf-2475261b903298ce063c365be8a5271bc7a5ee17.zip |
[Bug 199788] Web Page Editor doesn't allow drops in the HTML head tag.
Diffstat (limited to 'jsf')
10 files changed, 350 insertions, 25 deletions
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 b8262cb8c..90f1c4d6a 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 @@ -119,6 +119,8 @@ ElementEdit.Submenu.Taglib=Open Definition File TableInsertHeaderFooterCommand.ColumnHeader=Column Header TableInsertHeaderFooterCommand.ColumnFooter=Column Footer +HeadElementEdit.Submenu.InsertStylesheetLink=Stylesheet Link + Action.Name.Copy=Copy Action.Name.Cut=Cut Action.Name.Paste=Paste diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/commands/single/AddSubNodeCommand.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/commands/single/AddSubNodeCommand.java index a099b9efd..178aba7f0 100644 --- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/commands/single/AddSubNodeCommand.java +++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/commands/single/AddSubNodeCommand.java @@ -14,6 +14,7 @@ package org.eclipse.jst.pagedesigner.commands.single; import java.util.Iterator; import java.util.Map; +import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants; import org.eclipse.jst.pagedesigner.utils.JSPUtil; import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; @@ -53,16 +54,27 @@ public class AddSubNodeCommand extends SingleNodeCommand { * @see org.eclipse.jst.pagedesigner.commands.DesignerCommand#doExecute() */ protected void doExecute() { - String prefix = JSPUtil.getOrCreatePrefix(_parent.getModel(), _url, - null); - _child = (IDOMElement) _parent.getOwnerDocument().createElement( - prefix + ":" + _tagName); //$NON-NLS-1$ + String nodeName = null; + if (ITLDConstants.URI_HTML.equals(_url)) { + nodeName = _tagName; + } else { + String prefix = JSPUtil.getOrCreatePrefix(_parent.getModel(), _url, null); + nodeName = prefix + ":" + _tagName; //$NON-NLS-1$ + } + + _child = (IDOMElement) _parent.getOwnerDocument().createElement(nodeName); + + if (_child == null) { + return; + } + for (Iterator iterator = _attributes.keySet().iterator(); iterator .hasNext();) { String key = (String) iterator.next(); String value = (String) _attributes.get(key); _child.setAttribute(key, value); } + _parent.appendChild(_child); } diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editpolicies/HeadItemCreationEditPolicy.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editpolicies/HeadItemCreationEditPolicy.java new file mode 100644 index 000000000..a7de205e1 --- /dev/null +++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editpolicies/HeadItemCreationEditPolicy.java @@ -0,0 +1,117 @@ +/******************************************************************************* + * Copyright (c) 2010 Oracle Corporation and others. + * All rights reserved. This program and the accompanying materials + * are 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 + * + * Contributors: + * Oracle Corporation - initial API and implementation and/or initial documentation + *******************************************************************************/ +package org.eclipse.jst.pagedesigner.editpolicies; + +import org.eclipse.gef.Request; +import org.eclipse.gef.commands.Command; +import org.eclipse.gef.requests.DropRequest; +import org.eclipse.jst.pagedesigner.IHTMLConstants; +import org.eclipse.jst.pagedesigner.PDPlugin; +import org.eclipse.jst.pagedesigner.commands.CreateItemCommand; +import org.eclipse.jst.pagedesigner.dom.DOMPosition; +import org.eclipse.jst.pagedesigner.dom.DOMPositionHelper; +import org.eclipse.jst.pagedesigner.dom.DOMRefPosition; +import org.eclipse.jst.pagedesigner.dom.IDOMPosition; +import org.eclipse.jst.pagedesigner.itemcreation.ItemCreationEditPolicy; +import org.eclipse.jst.pagedesigner.itemcreation.ItemCreationRequest; +import org.eclipse.jst.pagedesigner.parts.ElementEditPart; +import org.eclipse.jst.pagedesigner.validation.caret.ActionData; +import org.eclipse.jst.pagedesigner.validation.caret.DnDPositionValidator; +import org.eclipse.jst.pagedesigner.validation.caret.DropActionData; +import org.eclipse.jst.pagedesigner.validation.caret.IPositionMediator; +import org.eclipse.jst.pagedesigner.validation.caret.DropActionData.DropData; +import org.eclipse.jst.pagedesigner.viewer.DesignPosition; +import org.w3c.dom.Node; + +/** + * + */ +public class HeadItemCreationEditPolicy extends ItemCreationEditPolicy { + + /** + * @param host + */ + public HeadItemCreationEditPolicy(ElementEditPart host) { + super(); + setHost(host); + } + /* + * (non-Javadoc) + * + * @see org.eclipse.gef.editpolicies.AbstractEditPolicy#getCommand(org.eclipse.gef.Request) + */ + @Override + public Command getCommand(Request request) { + if (request instanceof ItemCreationRequest) { + ItemCreationRequest r = (ItemCreationRequest) request; + DesignPosition position = findPosition((ItemCreationRequest)request); + + if (position == null) { + return null; + } + + IDOMPosition domposition = DOMPositionHelper.toDOMPosition(position); + if (domposition == null) { + return null; + } + + // since the head tag is a widget, the offset will need + // to be updated in the position so that new node is + // appended to the list of children. + Node node = domposition.getContainerNode(); + domposition = new DOMPosition(node, node.getChildNodes().getLength()); + + return new CreateItemCommand( + PDPlugin + .getResourceString("ItemCreationEditPolicy.CommandLabel.CreateItem"),//$NON-NLS-1$ + getViewer(getHost()).getModel(), domposition, r.getTagCreationProvider()); + } + return null; + } + + @Override + protected IPositionMediator createDropChildValidator(DropRequest r) { + DropData dropData = createDropData(r); + + if (dropData != null) { + MyDnDPositionValidator validator = new MyDnDPositionValidator( + new DropActionData(ActionData.PALETTE_DND, dropData)); + return validator; + } + return null; + } + + private static class MyDnDPositionValidator extends DnDPositionValidator { + + public MyDnDPositionValidator(DropActionData dropActionData) { + super(dropActionData); + } + + @Override + public boolean isValidPosition(IDOMPosition position) { + // if position is really a IDOMRefPosition, convert it to DOMPosition + Node node = null; + if (position instanceof DOMRefPosition) { + node = ((DOMRefPosition) position).getReferenceNode(); + if (IHTMLConstants.TAG_HEAD.equalsIgnoreCase(node.getLocalName())) { + return true; + } + } else { + node = position.getContainerNode(); + if (IHTMLConstants.TAG_HEAD.equalsIgnoreCase(node.getLocalName())) { + return true; + } + } + + return super.isValidPosition(position); + } + } +} diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/html/HTMLElementEditFactory.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/html/HTMLElementEditFactory.java index f4804c13d..2ddff0ccc 100644 --- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/html/HTMLElementEditFactory.java +++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/html/HTMLElementEditFactory.java @@ -24,6 +24,8 @@ import org.eclipse.jst.pagedesigner.elementedit.IElementEditFactory; */ public class HTMLElementEditFactory implements IElementEditFactory { + final static TagIdentifier HTMLHEAD_TAG_IDENTIFIER = + TagIdentifierFactory.createJSPTagWrapper(ITLDConstants.URI_HTML, IHTMLConstants.TAG_HEAD); final static TagIdentifier HTMLTABLE_TAG_IDENTIFIER = TagIdentifierFactory.createJSPTagWrapper(ITLDConstants.URI_HTML, IHTMLConstants.TAG_TABLE); @@ -35,6 +37,16 @@ public class HTMLElementEditFactory implements IElementEditFactory public IElementEdit createElementEdit(TagIdentifier tagIdentifier) { if (HTMLTABLE_TAG_IDENTIFIER.isSameTagType(tagIdentifier)) { return new TableElementEdit(); + } else if (HTMLHEAD_TAG_IDENTIFIER.isSameTagType(tagIdentifier)) { + return new HeadElementEdit(); + } else if (tagIdentifier != null) { + // No need to check the URI, it was checked to get this factory. + // Just check the tag name, ignoring case in the HTML tag names. + // The HTML tag meta data uses upper case and the programming + // constants are in lower case. + if (IHTMLConstants.TAG_LINK.equalsIgnoreCase(tagIdentifier.getTagName())) { + return new StylesheetLinkElementEdit(); + } } return null; } diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/html/HeadElementEdit.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/html/HeadElementEdit.java new file mode 100644 index 000000000..4840bbb54 --- /dev/null +++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/html/HeadElementEdit.java @@ -0,0 +1,72 @@ +/******************************************************************************* + * Copyright (c) 2010 Oracle Corporation and others. + * All rights reserved. This program and the accompanying materials + * are 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 + * + * Contributors: + * Oracle Corporation - initial API and implementation and/or initial documentation + *******************************************************************************/ +package org.eclipse.jst.pagedesigner.elementedit.html; + +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.jst.pagedesigner.editors.PageDesignerActionConstants; +import org.eclipse.jst.pagedesigner.editpolicies.HeadItemCreationEditPolicy; +import org.eclipse.jst.pagedesigner.elementedit.AbstractElementEdit; +import org.eclipse.jst.pagedesigner.itemcreation.ItemCreationRequest; +import org.eclipse.jst.pagedesigner.parts.ElementEditPart; +import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; +import org.w3c.dom.Element; + +/** + * Simple ElementEdit implementation to support context menu insert + * actions and drag and drop of tags into the HTML head tag. + */ +public class HeadElementEdit extends AbstractElementEdit +{ + private static final Action EMPTY_ACTION = new Action() { + // create a default instance that does nothing. + // Action is abstract but has no abstract methods + // run() on this object is a NOOP + }; + + /* (non-Javadoc) + * @see org.eclipse.jst.pagedesigner.elementedit.AbstractElementEdit#fillContextMenu(org.eclipse.jface.action.IMenuManager, org.w3c.dom.Element) + */ + @Override + public void fillContextMenu(IMenuManager contextMenu, Element ele) { + super.fillContextMenu(contextMenu, ele); + + final IDOMElement element = (IDOMElement) ele; + IContributionItem item = contextMenu.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(); + addHeadAddItems(submenu, element); + } + }); + } + } + + private void addHeadAddItems(IMenuManager submenu, IDOMElement element) { + submenu.add(new InsertStylesheetLinkAction(element)); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.jst.pagedesigner.elementedit.IElementEdit#createEditPolicies(org.eclipse.jst.pagedesigner.parts.ElementEditPart) + */ + @Override + public void createEditPolicies(ElementEditPart part) { + part.installEditPolicy(ItemCreationRequest.REQ_ITEM_CREATION, + new HeadItemCreationEditPolicy(part)); + } +} diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/html/InsertStylesheetLinkAction.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/html/InsertStylesheetLinkAction.java new file mode 100644 index 000000000..a2c932674 --- /dev/null +++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/html/InsertStylesheetLinkAction.java @@ -0,0 +1,56 @@ +/******************************************************************************* + * Copyright (c) 2010 Oracle Corporation and others. + * All rights reserved. This program and the accompanying materials + * are 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 + * + * Contributors: + * Oracle Corporation - initial API and implementation and/or initial documentation + *******************************************************************************/ +package org.eclipse.jst.pagedesigner.elementedit.html; + +import java.util.LinkedHashMap; +import java.util.Map; + +import org.eclipse.gef.commands.Command; +import org.eclipse.jface.action.Action; +import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants; +import org.eclipse.jst.pagedesigner.IHTMLConstants; +import org.eclipse.jst.pagedesigner.PDPlugin; +import org.eclipse.jst.pagedesigner.commands.single.AddSubNodeCommand; +import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; + +/** + */ +public class InsertStylesheetLinkAction extends Action +{ + private IDOMElement _parentElement; + + /** + * @param parentElement + */ + public InsertStylesheetLinkAction(IDOMElement parentElement) { + setText(PDPlugin.getResourceString("HeadElementEdit.Submenu.InsertStylesheetLink"));//$NON-NLS-1$ + _parentElement = parentElement; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.jface.action.IAction#run() + */ + public void run() { + // TODO: figure out how to get the default attributes from + // the tag create metadata. Get a tag creation provider? + Map attributes = new LinkedHashMap(); + attributes.put("href", ""); //$NON-NLS-1$//$NON-NLS-2$ + attributes.put("rel", "Stylesheet"); //$NON-NLS-1$//$NON-NLS-2$ + attributes.put("type", "text/css"); //$NON-NLS-1$//$NON-NLS-2$ + Command command = new AddSubNodeCommand( + PDPlugin.getResourceString("ItemCreationEditPolicy.CommandLabel.CreateItem"),//$NON-NLS-1$ + _parentElement, IHTMLConstants.TAG_LINK, ITLDConstants.URI_HTML, + attributes); + command.execute(); + } +} diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/html/StylesheetLinkElementEdit.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/html/StylesheetLinkElementEdit.java new file mode 100644 index 000000000..d3e4ea5a5 --- /dev/null +++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/html/StylesheetLinkElementEdit.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2010 Oracle Corporation and others. + * All rights reserved. This program and the accompanying materials + * are 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 + * + * Contributors: + * Oracle Corporation - initial API and implementation and/or initial documentation + *******************************************************************************/ +package org.eclipse.jst.pagedesigner.elementedit.html; + +import org.eclipse.draw2d.geometry.Point; +import org.eclipse.gef.EditPart; +import org.eclipse.gef.EditPartViewer; +import org.eclipse.jst.jsf.common.dom.TagIdentifier; +import org.eclipse.jst.pagedesigner.IHTMLConstants; +import org.eclipse.jst.pagedesigner.elementedit.AbstractElementEdit; +import org.eclipse.jst.pagedesigner.validation.caret.IPositionMediator; +import org.eclipse.jst.pagedesigner.viewer.DefaultDropLocationStrategy; +import org.eclipse.jst.pagedesigner.viewer.DesignPosition; +import org.eclipse.jst.pagedesigner.viewer.IDropLocationStrategy; +import org.w3c.dom.Node; + +/** + * Simple ElementEdit implementation to support drag and drop + * of style sheet link tags into the HTML head tag. + */ +public class StylesheetLinkElementEdit extends AbstractElementEdit +{ + public IDropLocationStrategy getDropRequestorLocationStrategy(TagIdentifier tag, EditPartViewer viewer) { + return new MyDropLocationStrategy(viewer); + } + + private static class MyDropLocationStrategy extends DefaultDropLocationStrategy + { + /** + * @param viewer + */ + public MyDropLocationStrategy(EditPartViewer viewer) { + super(viewer); + } + + public DesignPosition calculateDesignPosition(EditPart host, + Point p, IPositionMediator validator) { + Node node = (Node) host.getModel(); + if (host != null && IHTMLConstants.TAG_HEAD.equalsIgnoreCase(node.getLocalName())) { + return new DesignPosition(host, 0); + } + return super.calculateDesignPosition(host, p, validator); + } + } +} diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/ItemCreationEditPolicy.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/ItemCreationEditPolicy.java index c514b42cc..42c365684 100644 --- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/ItemCreationEditPolicy.java +++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/ItemCreationEditPolicy.java @@ -83,9 +83,9 @@ public class ItemCreationEditPolicy extends DropEditPolicy /** * @param host - * @return + * @return the graphical viewer */ - private IHTMLGraphicalViewer getViewer(EditPart host) { + protected IHTMLGraphicalViewer getViewer(EditPart host) { return (IHTMLGraphicalViewer) ((GraphicalEditPart) host).getViewer(); } diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/validation/caret/RootContainerPositionRule.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/validation/caret/RootContainerPositionRule.java index 2901427aa..b44bdb1fe 100644 --- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/validation/caret/RootContainerPositionRule.java +++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/validation/caret/RootContainerPositionRule.java @@ -14,17 +14,18 @@ package org.eclipse.jst.pagedesigner.validation.caret; import java.util.Arrays; import org.eclipse.gef.EditPart; +import org.eclipse.jst.pagedesigner.IHTMLConstants; import org.eclipse.jst.pagedesigner.dom.EditModelQuery; import org.w3c.dom.Document; import org.w3c.dom.Node; /** - * This rule deal with containers 'body', 'view', 'subview'. + * This rule deal with containers 'body', 'head', 'view', 'subview'. * * @author mengbo */ public class RootContainerPositionRule extends DefaultPositionRule { - static final String[] HTML_ROOT_CONTAINERS = { "body" }; //$NON-NLS-1$ + static final String[] HTML_ROOT_CONTAINERS = { IHTMLConstants.TAG_BODY, IHTMLConstants.TAG_HEAD }; /** * @param actionData @@ -47,7 +48,7 @@ public class RootContainerPositionRule extends DefaultPositionRule { } Node node = target.getNode(); if (hasBasicContainers(EditModelQuery.getDocumentNode(node))) { - return true;// isWithinkBasicContainer(node); + return true;// isWithinBasicContainer(node); } return super.hasEditableArea(target); } @@ -60,7 +61,7 @@ public class RootContainerPositionRule extends DefaultPositionRule { public boolean isEditable(Target target) { Node node = target.getNode(); if (hasBasicContainers(EditModelQuery.getDocumentNode(node))) { - boolean result = isWithinkBasicContainer(node); + boolean result = isWithinBasicContainer(node); return result; } return super.isEditable(target); @@ -78,7 +79,7 @@ public class RootContainerPositionRule extends DefaultPositionRule { } - private static boolean isWithinkBasicContainer(Node node) { + private static boolean isWithinBasicContainer(Node node) { return EditModelQuery.isChild(HTML_ROOT_CONTAINERS, node, true, false); } diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/viewer/EditPartPositionHelper.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/viewer/EditPartPositionHelper.java index 96f275ec5..0f11741f3 100644 --- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/viewer/EditPartPositionHelper.java +++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/viewer/EditPartPositionHelper.java @@ -42,7 +42,7 @@ public class EditPartPositionHelper { // .getLogger(EditPartPositionHelper.class); /** - * Add something to curent + * Add something to current * * @param lineBox * @param host @@ -156,9 +156,9 @@ public class EditPartPositionHelper { } /** - * This function find the position, if there is one which is widget or text - * and it contains p, or there is not such widget, then boxLine will returns - * the widget that are in a sameline which contains p; + * This function finds the position, if there is one which is widget or text + * and it contains p, or there is not such widget, then boxLine will return + * the widget that are in a same line which contains p; * @param rootHost * @param host * @@ -204,7 +204,7 @@ public class EditPartPositionHelper { } addToCurrentLine(boxLine, host, p, validator); } else { - // root host. we always supporse it has editable area. + // root host. we always support it has editable area. if (host == rootHost) { if (host.getChildren().size() > 0) { List children = host.getChildren(); @@ -228,13 +228,13 @@ public class EditPartPositionHelper { } // container else { - // cann't edit it. + // can't edit it. if (!validator.hasEditableArea(target)) { if (lPart.contains(p) && // (validator.isValidPosition(new DesignRefPosition( target.getPart(), true)) || // validator.isValidPosition(new DesignRefPosition( - target.getPart(), true)))) { + target.getPart(), false)))) { return new DesignRefPosition(host, lPart .isBeforePoint(p) || !lPart.atLeftPart(p)); @@ -248,7 +248,7 @@ public class EditPartPositionHelper { (!validator.isValidPosition(new DesignRefPosition( target.getPart(), true)) && // !validator.isValidPosition(new DesignRefPosition( - target.getPart(), true)))) { + target.getPart(), false)))) { if (host.getChildren().size() > 0) { List children = host.getChildren(); for (int i = 0, size = children.size(); i < size; i++) { @@ -280,7 +280,7 @@ public class EditPartPositionHelper { } /** - * similiar to findEditPartPositionConstrained, this method is used to + * Similar to findEditPartPositionConstrained, this method is used to * vertically move caret. * * @param host @@ -314,7 +314,7 @@ public class EditPartPositionHelper { /** * This method is used for move up/down, except for using tactics to deal - * with container, this method is similiar to findEditPartPosition. + * with container, this method is similar to findEditPartPosition. * * @param rootHost * @param host @@ -357,7 +357,7 @@ public class EditPartPositionHelper { } addToCurrentLine(boxLine, host, p, validator); } else { - // root host. we always supporse it has editable area. + // root host. we always support it has editable area. if (host == rootHost) { if (host.getChildren().size() > 0) { List children = host.getChildren(); @@ -380,7 +380,7 @@ public class EditPartPositionHelper { } // container else { - // cann't edit it. + // can't edit it. if (!validator.hasEditableArea(target) || !validator.allowsMoveIn(target)) { if (validator.canReference(target, true) @@ -560,8 +560,8 @@ public class EditPartPositionHelper { } /* - * Here we are doing something to avoid reference witespace tag. Since we - * still need to improve whitespace tags's layout furthure more. + * Here we are doing something to avoid reference whitespace tag. Since we + * still need to improve whitespace tags's layout further more. */ private static EditPart getNextConcretPart(DesignPosition position, List<Boolean> caretIsAtRightTest) { |