Java 类org.eclipse.gef.TreeEditPart 实例源码

项目:PDFReporter-Studio    文件:JDTreeContainerEditPolicy.java   
@Override
protected Command getCreateCommand(CreateRequest request) {
    int index = -1;
    if (((TreeEditPart) getHost()).getWidget() != null)
        index = findIndexOfTreeItemAt(request.getLocation());
    if (index < 0)
        index = CreateRequestUtil.getNewIndex(request);

    if (request.getNewObject() instanceof ANode) {
        return createCreateCommand((ANode) request.getNewObject(), index);
    } else if (request.getNewObject() instanceof CreateElementAction) {
        CreateElementAction action = (CreateElementAction) request.getNewObject();
        action.dropInto(getHost().getModel(), new Rectangle(), index);
        action.run();
        return action.getCommand();
    }
    return null;
}
项目:gef-gwt    文件:TreeContainerEditPolicy.java   
/**
 * Returns the host EditPart when appropriate. Targeting is done by checking
 * if the mouse is clearly over the host's TreeItem.
 * 
 * @see org.eclipse.gef.EditPolicy#getTargetEditPart(Request)
 */
public EditPart getTargetEditPart(Request req) {
    if (req.getType().equals(REQ_ADD) || req.getType().equals(REQ_MOVE)
            || req.getType().equals(REQ_CREATE)) {
        DropRequest drop = (DropRequest) req;
        Point where = new Point(drop.getLocation().x, drop.getLocation().y);
        Widget widget = ((TreeEditPart) getHost()).getWidget();
        if (widget instanceof Tree)
            return getHost();
        TreeItem treeitem = (TreeItem) widget;
        Rectangle bounds = treeitem.getBounds();
        int fudge = bounds.height / 5;
        Rectangle inner = new Rectangle(bounds.x, bounds.y + fudge,
                bounds.width, bounds.height
                        - (treeitem.getExpanded() ? 0 : fudge * 2));
        // Point is either outside the Treeitem, or inside the inner Rect.
        if (!bounds.contains(where) || inner.contains(where))
            return getHost();
    }
    return null;
}
项目:gef-gwt    文件:TreeContainerEditPolicy.java   
private void showDropFeedback(DropRequest request) {
    Widget hostWidget = ((TreeEditPart) getHost()).getWidget();
    Tree tree = getTree();

    org.eclipse.draw2d.geometry.Point pt = request.getLocation();
    TreeItem item = findTreeItemAt(pt);
    if (item == null) {
        if (hostWidget == tree) {
            insertMarkAfterLastChild(tree.getItems());
        }
    } else if (item == hostWidget) {
        tree.setInsertMark(null, true);
    } else {
        boolean before = isInUpperHalf(item.getBounds(), pt);
        tree.setInsertMark(item, before);
    }
}
项目:seg.jUCMNav    文件:StrategyRootEditPart.java   
/**
 * Refreshes the scenarios.
 * 
 * @param ucmspec
 */
public void refreshScenarioTreeView(UCMspec ucmspec) {
    for (Iterator iter = ucmspec.getScenarioGroups().iterator(); iter.hasNext();) {
        ScenarioGroup group = (ScenarioGroup) iter.next();
        for (Iterator iterator = group.getScenarios().iterator(); iterator.hasNext();) {
            ScenarioDef scenario = (ScenarioDef) iterator.next();
            StrategyUrnModelElementTreeEditPart part = (StrategyUrnModelElementTreeEditPart) getViewer().getEditPartRegistry().get(scenario);
            if (part != null) {
                // all children of a strategy
                for (Iterator iter2 = part.getChildren().iterator(); iter2.hasNext();) {
                    TreeEditPart element = (TreeEditPart) iter2.next();
                    element.refresh();
                }
            }
        }
    }
}
项目:triquetrum    文件:PaletteEntryEditPart.java   
@Override
protected void removeChildVisual(EditPart childEditPart) {
  TreeEditPart treeEditPart = (TreeEditPart) childEditPart;
  if (treeEditPart.getWidget() != null) {
    treeEditPart.getWidget().dispose();
    treeEditPart.setWidget(null);
  }
}
项目:triquetrum    文件:PaletteTreeViewer.java   
/**
 * @see org.eclipse.gef.ui.parts.AbstractEditPartViewer#reveal(org.eclipse.gef.EditPart)
 */
@Override
public void reveal(EditPart part) {
  if (!(part instanceof TreeEditPart))
    return;
  TreeEditPart treePart = (TreeEditPart) part;
  final Tree tree = getTreeControl();
  Widget widget = treePart.getWidget();
  if (widget instanceof TreeItem)
    tree.showItem((TreeItem) widget);
}
项目:triquetrum    文件:PaletteTreeViewer.java   
/**
 * Unhooks a control so that it can be reset. This method deactivates the contents, removes the Control as being the
 * Control of the RootTreeEditPart, etc. It does not remove the listeners because it is causing errors, although that
 * would be a desirable outcome.
 */
@Override
protected void unhookControl() {
  if (getControl() == null)
    return;
  super.unhookControl();
  // Ideally, you would want to remove the listeners here
  TreeEditPart tep = (TreeEditPart) getRootEditPart();
  tep.setWidget(null);
}
项目:gef-gwt    文件:AbstractTreeEditPart.java   
/**
 * Implemented to assign the child its
 * {@link TreeEditPart#setWidget(Widget) widget}. Subclasses should not call
 * or override this method.
 * 
 * @see AbstractEditPart#addChildVisual(EditPart, int)
 */
protected void addChildVisual(EditPart childEditPart, int index) {
    Widget widget = getWidget();
    TreeItem item;
    if (widget instanceof Tree)
        item = new TreeItem((Tree) widget, 0, index);
    else
        item = new TreeItem((TreeItem) widget, 0, index);
    ((TreeEditPart) childEditPart).setWidget(item);
}
项目:gef-gwt    文件:AbstractTreeEditPart.java   
/**
 * Sets the {@link #widget}.
 * 
 * @see org.eclipse.gef.TreeEditPart#setWidget(Widget)
 */
public void setWidget(Widget widget) {
    List children = getChildren();
    if (widget != null) {
        widget.setData(this);
        if (widget instanceof TreeItem) {
            final TreeItem item = (TreeItem) widget;
            item.addDisposeListener(new DisposeListener() {
                public void widgetDisposed(DisposeEvent e) {
                    expanded = item.getExpanded();
                }
            });
        }
        for (int i = 0; i < children.size(); i++) {
            TreeEditPart tep = (TreeEditPart) children.get(i);
            if (widget instanceof TreeItem)
                tep.setWidget(new TreeItem((TreeItem) widget, 0));
            else
                tep.setWidget(new TreeItem((Tree) widget, 0));

            // We have just assigned a new TreeItem to the EditPart
            tep.refresh();
        }
        if (widget instanceof TreeItem)
            ((TreeItem) widget).setExpanded(expanded);
    } else {
        Iterator iter = getChildren().iterator();
        while (iter.hasNext())
            ((TreeEditPart) iter.next()).setWidget(null);
    }
    this.widget = widget;
}
项目:gef-gwt    文件:TreeContainerEditPolicy.java   
private Tree getTree() {
    Widget widget = ((TreeEditPart) getHost()).getWidget();
    if (widget instanceof Tree)
        return (Tree) widget;
    else
        return ((TreeItem) widget).getParent();
}
项目:gef-gwt    文件:TreeViewer.java   
/**
 * @see org.eclipse.gef.ui.parts.AbstractEditPartViewer#reveal(org.eclipse.gef.EditPart)
 */
public void reveal(EditPart part) {
    if (!(part instanceof TreeEditPart))
        return;
    TreeEditPart treePart = (TreeEditPart) part;
    Tree tree = (Tree) getControl();
    Widget widget = treePart.getWidget();
    if (widget instanceof TreeItem)
        tree.showItem((TreeItem) widget);
}
项目:gef-gwt    文件:TreeViewer.java   
/**
 * Unhooks a control so that it can be reset. This method deactivates the
 * contents, removes the Control as being the Control of the
 * RootTreeEditPart, etc. It does not remove the listeners because it is
 * causing errors, although that would be a desirable outcome.
 */
protected void unhookControl() {
    if (getControl() == null)
        return;
    super.unhookControl();
    // Ideally, you would want to remove the listeners here
    TreeEditPart tep = (TreeEditPart) getRootEditPart();
    tep.setWidget(null);
}
项目:seg.jUCMNav    文件:UrnModelElementTreeEditPart.java   
protected void removeChildVisual(EditPart childEditPart) {
    TreeEditPart treeEditPart = (TreeEditPart) childEditPart;
    if (treeEditPart.getWidget() != null) {
        treeEditPart.getWidget().dispose();
        treeEditPart.setWidget(null);
    }
}
项目:gef-gwt    文件:AbstractTreeEditPart.java   
/**
 * Disposes the child's <code>widget</code> and sets it to <code>null</code>
 * .
 * 
 * @see AbstractEditPart#removeChildVisual(EditPart)
 */
protected void removeChildVisual(EditPart childEditPart) {
    TreeEditPart treeEditPart = (TreeEditPart) childEditPart;
    treeEditPart.getWidget().dispose();
    treeEditPart.setWidget(null);
}
项目:gef-gwt    文件:RootTreeEditPart.java   
/**
 * This is where the child gets added. No TreeItem is needed here because
 * the contents is actually represented by the Tree iteself.
 * 
 * @param childEditPart
 *            EditPart of child to be added.
 * @param index
 *            Position where it is to be added.
 */
protected void addChildVisual(EditPart childEditPart, int index) {
    ((TreeEditPart) childEditPart).setWidget(widget);
}
项目:gef-gwt    文件:RootTreeEditPart.java   
/**
 * This is where the child gets removed. This method is overridden here so
 * that the AbstractTreeEditPart does not dispose the widget, which is the
 * Tree in this case. The tree is owned by the viewer, not the child.
 * 
 * @param childEditPart
 *            EditPart of child to be removed.
 */
protected void removeChildVisual(EditPart childEditPart) {
    ((TreeEditPart) childEditPart).setWidget(null);
}