diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/validation/caret/DefaultPositionValidator.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/validation/caret/DefaultPositionValidator.java | 223 |
1 files changed, 0 insertions, 223 deletions
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/validation/caret/DefaultPositionValidator.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/validation/caret/DefaultPositionValidator.java deleted file mode 100644 index 34d0a15ff..000000000 --- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/validation/caret/DefaultPositionValidator.java +++ /dev/null @@ -1,223 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 Sybase, Inc. 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: - * Sybase, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.jst.pagedesigner.validation.caret; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.gef.EditPart; -import org.eclipse.jst.pagedesigner.dom.DOMPositionHelper; -import org.eclipse.jst.pagedesigner.dom.EditHelper; -import org.eclipse.jst.pagedesigner.dom.EditModelQuery; -import org.eclipse.jst.pagedesigner.dom.IDOMPosition; -import org.eclipse.jst.pagedesigner.parts.DocumentEditPart; -import org.eclipse.jst.pagedesigner.viewer.DesignPosition; -import org.w3c.dom.Document; -import org.w3c.dom.Node; - -/** - * @author mengbo - */ -public class DefaultPositionValidator implements IPositionMediator { - private List _rules = new ArrayList(); - - ActionData _actionData; - - /** - * @return Returns the _actionData. - */ - public ActionData getActionData() { - return _actionData; - } - - /** - * - */ - protected DefaultPositionValidator(ActionData actionData) { - _actionData = actionData; - initRules(); - } - - protected void initRules() { - _rules.clear(); - _rules.add(new BasicPositionRule(this, _actionData)); - _rules.add(new IETablePositionRule(this, _actionData)); - _rules.add(new RootContainerPositionRule(this, _actionData)); - _rules.add(new JSFRootContainerPositionRule(this, _actionData)); - _rules.add(new WhitespacePositionMoveRule(this, _actionData)); - } - - /** - * @return Returns the _rules. - */ - public List getRules() { - return _rules; - } - - /** - * @param _rules - * The _rules to set. - */ - protected void setRules(List rules) { - _rules = rules; - } - - protected void addRule(IValidationRule rule) { - _rules.add(rule); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jst.pagedesigner.caret.IValidator#hasEditableArea(org.w3c.dom.Node) - */ - public boolean hasEditableArea(Target target) { - boolean result = true; - List _rules = getRules(); - for (int i = 0, n = _rules.size(); i < n; i++) { - Object rule = _rules.get(i); - if (rule instanceof IPositionRule) { - result &= ((IPositionRule) rule).hasEditableArea(target); - } - if (!result) { - break; - } - } - return result; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jst.pagedesigner.caret.IValidator#isEditable(org.w3c.dom.Node) - */ - public boolean isEditable(Target target) { - Node node = target.getNode(); - boolean result = true; - List _rules = getRules(); - for (int i = 0, n = _rules.size(); i < n; i++) { - Object rule = _rules.get(i); - if (rule instanceof IPositionRule) { - result &= ((IPositionRule) rule).isEditable(new Target(node)); - } - if (!result) { - break; - } - } - return result; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jst.pagedesigner.caret.IValidator#isValidPosition(org.eclipse.jst.pagedesigner.viewer.DesignPosition) - */ - public boolean isValidPosition(DesignPosition position) { - return isValidPosition(DOMPositionHelper.toDOMPosition(position)); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jst.pagedesigner.caret.IValidator#isValidPosition(org.eclipse.jst.pagedesigner.dom.IDOMPosition) - */ - public boolean isValidPosition(IDOMPosition position) { - position = EditHelper.ensureDOMPosition(position); - boolean refLeft = true, refRight = true, result = true; - if (position == null) { - return false; - } - List _rules = getRules(); - for (int i = 0, n = _rules.size(); i < n; i++) { - Object rule = _rules.get(i); - if (rule instanceof IPositionRule) { - // editable? - result &= ((IPositionRule) rule).isEditable(new Target(position - .getContainerNode())); - if (result) { - if (!position.isText()) { - - // ref1? - Node node = EditModelQuery.getInstance().getSibling( - position, true); - if (node != null & refLeft) { - refLeft &= ((IPositionRule) rule).canReference( - new Target(node), false); - } - // ref2? - node = EditModelQuery.getInstance().getSibling( - position, false); - if (node != null & refRight) { - refRight = ((IPositionRule) rule).canReference( - new Target(node), true); - } - if (!(refLeft | refRight)) { - result = false; - break; - } - } - } else { - break; - } - // } - } - } - return (result & (refLeft | refRight)); - } - - /** - * Adjust the position to an editable area. - * - * @see org.eclipse.jst.pagedesigner.caret.IValidator#getEditableContainer(org.eclipse.gef.EditPart) - */ - public EditPart getEditableContainer(Target target) { - EditPart part = target.getPart(); - if (hasEditableArea(target)) { - return target.getPart(); - } - while (part != null && !(part instanceof DocumentEditPart)) { - if (hasEditableArea(target)) { - break; - } - part = part.getParent(); - target = new Target(part); - } - if (part instanceof DocumentEditPart - && RootContainerPositionRule.hasBasicContainers((Document) part - .getModel())) { - Node node = RootContainerPositionRule - .getBasicContainer((Document) part.getModel()); - part = Target.resolvePart(node); - } - return part; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jst.pagedesigner.caret.IValidator#canReference(org.w3c.dom.Node) - */ - public boolean canReference(Target target, boolean atRight) { - boolean result = true; - List _rules = getRules(); - for (int i = 0, n = _rules.size(); i < n; i++) { - Object rule = _rules.get(i); - if (rule instanceof IPositionRule) { - result &= ((IPositionRule) rule).canReference(target, atRight); - } - if (!result) { - break; - } - } - return result; - } -} |