diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/src/org/eclipse/jst/jsf/apache/trinidad/tagsupport/elementedit/PanelTabbedElementEdit.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/src/org/eclipse/jst/jsf/apache/trinidad/tagsupport/elementedit/PanelTabbedElementEdit.java | 248 |
1 files changed, 0 insertions, 248 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/src/org/eclipse/jst/jsf/apache/trinidad/tagsupport/elementedit/PanelTabbedElementEdit.java b/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/src/org/eclipse/jst/jsf/apache/trinidad/tagsupport/elementedit/PanelTabbedElementEdit.java deleted file mode 100644 index dc086aaac..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/src/org/eclipse/jst/jsf/apache/trinidad/tagsupport/elementedit/PanelTabbedElementEdit.java +++ /dev/null @@ -1,248 +0,0 @@ -/** - * Copyright (c) 2008 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 - */ -package org.eclipse.jst.jsf.apache.trinidad.tagsupport.elementedit; - -import org.eclipse.draw2d.IFigure; -import org.eclipse.draw2d.geometry.Point; -import org.eclipse.gef.DragTracker; -import org.eclipse.gef.EditPart; -import org.eclipse.gef.EditPolicy; -import org.eclipse.gef.GraphicalEditPart; -import org.eclipse.gef.requests.DropRequest; -import org.eclipse.gef.requests.LocationRequest; -import org.eclipse.jst.jsf.apache.trinidad.tagsupport.ITrinidadConstants; -import org.eclipse.jst.jsf.apache.trinidad.tagsupport.TrinidadUtils; -import org.eclipse.jst.jsf.common.dom.TagIdentifier; -import org.eclipse.jst.jsf.core.internal.tld.TagIdentifierFactory; -import org.eclipse.jst.pagedesigner.editpolicies.DragMoveEditPolicy; -import org.eclipse.jst.pagedesigner.editpolicies.ElementResizableEditPolicy; -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.parts.NodeEditPart; -import org.eclipse.jst.pagedesigner.tools.ObjectModeDragTracker; -import org.eclipse.jst.pagedesigner.validation.caret.ActionData; -import org.eclipse.jst.pagedesigner.validation.caret.DefaultPositionRule; -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.Target; -import org.eclipse.jst.pagedesigner.validation.caret.DropActionData.DropData; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -/** - * IElementEdit implementation for Trinidad's panelTabbed tag. - * - * @author Ian Trimble - Oracle - */ -public class PanelTabbedElementEdit extends DefaultTrinidadCoreElementEdit { - - /* (non-Javadoc) - * @see org.eclipse.jst.pagedesigner.elementedit.AbstractElementEdit#createEditPolicies(org.eclipse.jst.pagedesigner.parts.ElementEditPart) - */ - @Override - public void createEditPolicies(ElementEditPart part) { - part.installEditPolicy( - EditPolicy.SELECTION_FEEDBACK_ROLE, - new PanelTabbedElementResizableEditPolicy()); - part.installEditPolicy( - EditPolicy.PRIMARY_DRAG_ROLE, - new PanelTabbedDragMoveEditPolicy()); - part.installEditPolicy( - ItemCreationRequest.REQ_ITEM_CREATION, - new PanelTabbedItemCreationEditPolicy()); - } - - /** - * Extends ElementResizableEditPolicy to determine if tab is clicked and - * respond accordingly. - * - * @author Ian Trimble - Oracle - */ - public static class PanelTabbedElementResizableEditPolicy extends ElementResizableEditPolicy { - - /* (non-Javadoc) - * @see org.eclipse.jst.pagedesigner.editpolicies.ElementResizableEditPolicy#getSelectionDragTracker(org.eclipse.gef.requests.LocationRequest) - */ - @Override - public DragTracker getSelectionDragTracker(LocationRequest request) { - return getSelectionTracker(request); - } - - /* (non-Javadoc) - * @see org.eclipse.jst.pagedesigner.editpolicies.ElementResizableEditPolicy#getSelectionTracker(org.eclipse.gef.requests.LocationRequest) - */ - @Override - protected DragTracker getSelectionTracker(LocationRequest request) { - final GraphicalEditPart part = (GraphicalEditPart)getHost(); - if (part instanceof NodeEditPart) { - final Node node = ((NodeEditPart)part).getDOMNode(); - if (getShowDetailItemCount(node) > 0) { - ObjectModeDragTracker dragTracker = new ObjectModeDragTracker(getHost()) { - protected boolean handleButtonDown(int button) { - if (button == 1) { - final int tabIndex = getTabIndex(getLocation()); - final EditPart editPart = getSourceEditPart(); - if (editPart instanceof ElementEditPart) { - final Node node = ((ElementEditPart)editPart).getDOMNode(); - if (TrinidadUtils.setCurrentChildIndex(node, tabIndex)) { - ((ElementEditPart)editPart).refresh(true); - } - } - } - return super.handleButtonDown(button); - } - }; - return dragTracker; - } - } - return new ObjectModeDragTracker(getHost()); - } - - private int getTabIndex(Point location) { - int tabIndex = -1; - final GraphicalEditPart part = (GraphicalEditPart)getHost(); - if (part instanceof NodeEditPart) { - final Node node = ((NodeEditPart)part).getDOMNode(); - final IFigure figure = part.getFigure(); - Point relLocation = location.getCopy(); - figure.translateToRelative(relLocation); - final int showDetailItemCount = getShowDetailItemCount(node); - if (showDetailItemCount > 0) { - final int tabWidth = figure.getBounds().width / showDetailItemCount; - tabIndex = relLocation.x / tabWidth; - if (tabIndex > showDetailItemCount - 1) { - tabIndex = showDetailItemCount - 1; - } - } - } - return tabIndex; - } - - private int getShowDetailItemCount(Node node) { - int count = 0; - if (node != null) { - NodeList childNodes = node.getChildNodes(); - for (int i = 0; i < childNodes.getLength(); i++) { - Node childNode = childNodes.item(i); - if (childNode instanceof Element) { - if (ITrinidadConstants.TAG_IDENTIFIER_SHOWDETAILITEM.isSameTagType( - TagIdentifierFactory.createDocumentTagWrapper((Element)childNode))) { - count++; - } - } - } - } - return count; - } - - } - - /** - * Extends DragMoveEditPolicy to add OnlyShowDetailItemsRule as a rule. - * - * @author Ian Trimble - Oracle - */ - public static class PanelTabbedDragMoveEditPolicy extends DragMoveEditPolicy { - - /* - * (non-Javadoc) - * @see org.eclipse.jst.pagedesigner.editpolicies.DropEditPolicy#createDropChildValidator(org.eclipse.gef.requests.DropRequest) - */ - @Override - protected IPositionMediator createDropChildValidator(DropRequest r) { - DropData dropData = createDropData(r); - if (dropData != null) { - DnDPositionValidator validator = - new DnDPositionValidator(new DropActionData( - ActionData.COMPONENT_MOVE, dropData)); - validator.addRule(new OnlyShowDetailItemsRule(validator.getActionData())); - return validator; - } - return null; - } - - } - - /** - * Extends ItemCreationEditPolicy to add OnlyShowDetailItemsRule as a rule. - * - * @author Ian Trimble - Oracle - */ - public static class PanelTabbedItemCreationEditPolicy extends ItemCreationEditPolicy { - - /* (non-Javadoc) - * @see org.eclipse.jst.pagedesigner.editpolicies.DropEditPolicy#createDropChildValidator(org.eclipse.gef.requests.DropRequest) - */ - @Override - protected IPositionMediator createDropChildValidator(DropRequest r) { - DropData dropData = createDropData(r); - if (dropData != null) { - DnDPositionValidator validator = - new DnDPositionValidator(new DropActionData( - ActionData.PALETTE_DND, dropData)); - validator.addRule(new OnlyShowDetailItemsRule(validator.getActionData())); - return validator; - } - return null; - } - - } - - /** - * Extends DefaultPositionRule to only allow showDetailItem tags to be - * dropped on panelTabbed tag. - * - * @author Ian Trimble - Oracle - */ - private static class OnlyShowDetailItemsRule extends DefaultPositionRule { - - /** - * Instantiates an instance. - * - * @param actionData ActionData instance. - */ - public OnlyShowDetailItemsRule(ActionData actionData) { - super(actionData); - } - - /* - * (non-Javadoc) - * @see org.eclipse.jst.pagedesigner.validation.caret.DefaultPositionRule#isEditable(org.eclipse.jst.pagedesigner.validation.caret.Target) - */ - @Override - public boolean isEditable(Target target) { - if (ITrinidadConstants.TAG_IDENTIFIER_PANELTABBED.isSameTagType( - target.getTagWrapper())) { - return isDataDroppable(); - } - return true; - } - - private boolean isDataDroppable() { - ActionData actionData = getActionData(); - if (actionData instanceof DropActionData) { - DropActionData dropActionData = (DropActionData)actionData; - TagIdentifier tagIdentifier = - (TagIdentifier)dropActionData.getDropData().getTagIdentifiers().get(0); - if (ITrinidadConstants.TAG_IDENTIFIER_SHOWDETAILITEM.isSameTagType( - tagIdentifier)) { - return true; - } - } - return false; - } - - } - -} |