diff options
Diffstat (limited to 'bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/CategoryEditPart.java')
-rw-r--r-- | bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/CategoryEditPart.java | 248 |
1 files changed, 0 insertions, 248 deletions
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/CategoryEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/CategoryEditPart.java deleted file mode 100644 index bc8008e0ca..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/CategoryEditPart.java +++ /dev/null @@ -1,248 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2010 IBM 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: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.design.editparts; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.eclipse.draw2d.Figure; -import org.eclipse.draw2d.IFigure; -import org.eclipse.draw2d.Label; -import org.eclipse.draw2d.MarginBorder; -import org.eclipse.draw2d.PositionConstants; -import org.eclipse.draw2d.RectangleFigure; -import org.eclipse.draw2d.ScrollPane; -import org.eclipse.draw2d.ToolbarLayout; -import org.eclipse.draw2d.Viewport; -import org.eclipse.draw2d.ViewportLayout; -import org.eclipse.draw2d.geometry.Dimension; -import org.eclipse.draw2d.geometry.Rectangle; -import org.eclipse.gef.EditPart; -import org.eclipse.gef.EditPolicy; -import org.eclipse.gef.editparts.AbstractGraphicalEditPart; -import org.eclipse.swt.SWT; -import org.eclipse.wst.xsd.ui.internal.adapters.CategoryAdapter; -import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseEditPart; -import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.EditPartNavigationHandlerUtil; -import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.figures.HeadingFigure; -import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.figures.RoundedLineBorder; -import org.eclipse.wst.xsd.ui.internal.design.editpolicies.SelectionHandlesEditPolicyImpl; -import org.eclipse.wst.xsd.ui.internal.design.layouts.ContainerLayout; - -public class CategoryEditPart extends BaseEditPart -{ - protected SelectionHandlesEditPolicyImpl selectionHandlesEditPolicy; - protected Figure outerPane; - HeadingFigure headingFigure; - protected ScrollPane scrollpane; - protected int minimumHeight = 400; - - public int getType() - { - return ((CategoryAdapter) getModel()).getGroupType(); - } - - protected IFigure createFigure() - { - outerPane = new Figure(); - outerPane.setBorder(new RoundedLineBorder(1, 6)); - - createHeadingFigure(); - - int minHeight = SWT.DEFAULT; - switch (getType()) - { - case CategoryAdapter.DIRECTIVES: - { - minHeight = 80; - break; - } - case CategoryAdapter.ATTRIBUTES: - case CategoryAdapter.GROUPS: - { - minHeight = 100; - break; - } - } - - final int theMinHeight = minHeight; - - ToolbarLayout outerLayout = new ToolbarLayout(false) - { - protected Dimension calculatePreferredSize(IFigure parent, int width, int height) - { - Dimension d = super.calculatePreferredSize(parent, width, height); - d.union(new Dimension(250, theMinHeight)); - return d; - } - }; - outerLayout.setStretchMinorAxis(true); - outerPane.setLayoutManager(outerLayout); - - RectangleFigure line = new RectangleFigure() - { - public Dimension getPreferredSize(int wHint, int hHint) - { - Dimension d = super.getPreferredSize(wHint, hHint); - d.width += 20; - d.height = 1; - return d; - } - }; - ToolbarLayout lineLayout = new ToolbarLayout(false); - lineLayout.setVertical(true); - lineLayout.setStretchMinorAxis(true); - line.setLayoutManager(lineLayout); - outerPane.add(line); - - scrollpane = new ScrollPane(); - scrollpane.setVerticalScrollBarVisibility(ScrollPane.AUTOMATIC); // ScrollPane.ALWAYS); - outerPane.add(scrollpane); - - Figure pane = new Figure(); - pane.setBorder(new MarginBorder(5, 8, 5, 8)); - ContainerLayout layout = new ContainerLayout(); - layout.setHorizontal(false); - layout.setSpacing(0); - pane.setLayoutManager(layout); - - Viewport viewport = new Viewport(); - viewport.setContentsTracksHeight(true); - ViewportLayout viewportLayout = new ViewportLayout() - { - protected Dimension calculatePreferredSize(IFigure parent, int width, int height) - { - Dimension d = super.calculatePreferredSize(parent, width, height); - if (theMinHeight > 0) - d.height = Math.min(d.height, theMinHeight); - else - { - double factor = getZoomManager().getZoom(); - int scaledHeight = (int)Math.round((getViewer().getControl().getBounds().height - minimumHeight) / factor); // adjust for other categories and spaces - d.height = Math.max(250, scaledHeight); - } - d.width = Math.min(d.width, 300); - return d; - } - }; - viewport.setLayoutManager(viewportLayout); - - scrollpane.setViewport(viewport); - scrollpane.setContents(pane); - - return outerPane; - } - - protected void createHeadingFigure() - { - headingFigure = new HeadingFigure(); - outerPane.add(headingFigure); - headingFigure.getLabel().setText(((CategoryAdapter) getModel()).getText()); - headingFigure.getLabel().setIcon(((CategoryAdapter) getModel()).getImage()); - } - - public void refreshVisuals() - { - super.refreshVisuals(); - - RoundedLineBorder border = (RoundedLineBorder) outerPane.getBorder(); - border.setWidth(isSelected ? 2 : 1); - headingFigure.setSelected(isSelected); - outerPane.repaint(); - - headingFigure.getLabel().setText(((CategoryAdapter) getModel()).getText()); - } - - public IFigure getContentPane() - { - return scrollpane.getContents(); - } - - public Label getNameLabel() - { - return headingFigure.getLabel(); - } - - public HeadingFigure getHeadingFigure() - { - return headingFigure; - } - - protected EditPart createChild(Object model) - { - EditPart editPart = new TopLevelComponentEditPart(); - editPart.setModel(model); - editPart.setParent(this); - return editPart; - } - - public EditPart doGetRelativeEditPart(EditPart editPart, int direction) - { - EditPart result = null; - if (editPart instanceof TopLevelComponentEditPart) - { - if (direction == PositionConstants.SOUTH) - { - result = EditPartNavigationHandlerUtil.getNextSibling(editPart); - } - else if (direction == PositionConstants.NORTH) - { - result = EditPartNavigationHandlerUtil.getPrevSibling(editPart); - } - if (result != null) - { - scrollTo((AbstractGraphicalEditPart)editPart); - } - } - else - { - result = ((BaseEditPart)getParent()).doGetRelativeEditPart(editPart, direction); - } - return result; - } - - protected void createEditPolicies() - { - super.createEditPolicies(); - // cs : oddly arrowing up and down true items in the list is not handled nicely - // by the canned GEF GraphicalViewerKeyHandler so this navigation policy is need to fix that - selectionHandlesEditPolicy = new SelectionHandlesEditPolicyImpl(); - installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, selectionHandlesEditPolicy); - } - - protected List getModelChildren() - { - CategoryAdapter adapter = (CategoryAdapter) getModel(); - List children = new ArrayList(Arrays.asList(adapter.getAllChildren())); - return children; - } - - public void scrollTo(AbstractGraphicalEditPart topLevel) - { - Rectangle topLevelBounds = topLevel.getFigure().getBounds(); - Rectangle categoryBounds = figure.getBounds(); - int scrollValue = scrollpane.getVerticalScrollBar().getValue(); - int location = topLevelBounds.y + scrollValue - categoryBounds.y; - scrollpane.scrollVerticalTo(location - categoryBounds.height / 2); - } - - public void setMinimumHeight(int minimumHeight) - { - this.minimumHeight = minimumHeight; - } - - public String getReaderText() - { - return getNameLabel().getText(); - } - -} |