| author | ujhelyiz | 2011-06-28 16:58:36 (EDT) |
|---|---|---|
| committer | Fabian Steeg | 2011-06-28 16:58:36 (EDT) |
| commit | bdc2bc85b68ed5b6e0a1fee3c745ce6164c9b158 (patch) (side-by-side diff) | |
| tree | e4b6e30f440534ee7222ec6ac5d147709429fc76 | |
| parent | eb557a047ef59560247a7c165716c31df65bb9ca (diff) | |
| download | org.eclipse.gef4-bdc2bc85b68ed5b6e0a1fee3c745ce6164c9b158.zip org.eclipse.gef4-bdc2bc85b68ed5b6e0a1fee3c745ce6164c9b158.tar.gz org.eclipse.gef4-bdc2bc85b68ed5b6e0a1fee3c745ce6164c9b158.tar.bz2 | |
Example for JFace connection router usage
| -rw-r--r-- | org.eclipse.zest.examples/src/org/eclipse/zest/examples/jface/ManhattanLayoutJFaceSnippet.java | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/org.eclipse.zest.examples/src/org/eclipse/zest/examples/jface/ManhattanLayoutJFaceSnippet.java b/org.eclipse.zest.examples/src/org/eclipse/zest/examples/jface/ManhattanLayoutJFaceSnippet.java new file mode 100644 index 0000000..3db6825 --- a/dev/null +++ b/org.eclipse.zest.examples/src/org/eclipse/zest/examples/jface/ManhattanLayoutJFaceSnippet.java @@ -0,0 +1,159 @@ +/******************************************************************************* + * Copyright 2005-2007, CHISEL Group, University of Victoria, Victoria, BC, Canada. + * 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: + * The Chisel Group, University of Victoria + *******************************************************************************/ +package org.eclipse.zest.examples.jface; + +import java.util.Iterator; + +import org.eclipse.draw2d.ConnectionRouter; +import org.eclipse.draw2d.ManhattanConnectionRouter; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.zest.core.viewers.GraphViewer; +import org.eclipse.zest.core.viewers.IConnectionRouterStyleProvider; +import org.eclipse.zest.core.viewers.IGraphContentProvider; +import org.eclipse.zest.layouts.algorithms.SpringLayoutAlgorithm; + +/** + * This snippet shows how to use the {@link IConnectionRouterStyleProvider} + * interface to set the connection router for some references. + * + * Based on {@link GraphJFaceSnippet4}. + * + * @author Zoltan Ujhelyi - update for connectionprovider + * @author Ian Bull - original implementation + * + */ +public class ManhattanLayoutJFaceSnippet { + + static class MyContentProvider implements IGraphContentProvider { + + public Object getDestination(Object rel) { + if ("Rock2Paper".equals(rel)) { + return "Rock"; + } else if ("Paper2Scissors".equals(rel)) { + return "Paper"; + } else if ("Scissors2Rock".equals(rel)) { + return "Scissors"; + } + return null; + } + + public Object[] getElements(Object input) { + return new Object[] { "Rock2Paper", "Paper2Scissors", + "Scissors2Rock" }; + } + + public Object getSource(Object rel) { + if ("Rock2Paper".equals(rel)) { + return "Paper"; + } else if ("Paper2Scissors".equals(rel)) { + return "Scissors"; + } else if ("Scissors2Rock".equals(rel)) { + return "Rock"; + } + return null; + } + + public double getWeight(Object connection) { + return 0; + } + + public void dispose() { + } + + public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { + } + + } + + static class MyLabelProvider extends LabelProvider implements + IConnectionRouterStyleProvider { + final Image image = Display.getDefault().getSystemImage( + SWT.ICON_WARNING); + + public Image getImage(Object element) { + if (element.equals("Rock") || element.equals("Paper") + || element.equals("Scissors")) { + return image; + } + return null; + } + + public String getText(Object element) { + return element.toString(); + } + + public ConnectionRouter getConnectionRouter(Object rel) { + if (!rel.equals("Scissors2Rock")) + return new ManhattanConnectionRouter(); + else + return null; + } + + } + + static GraphViewer viewer = null; + + /** + * @param args + */ + public static void main(String[] args) { + Display d = new Display(); + Shell shell = new Shell(d); + shell.setText("GraphJFaceSnippet2"); + shell.setLayout(new FillLayout(SWT.VERTICAL)); + shell.setSize(400, 400); + viewer = new GraphViewer(shell, SWT.NONE); + viewer.setContentProvider(new MyContentProvider()); + viewer.setLabelProvider(new MyLabelProvider()); + viewer.setLayoutAlgorithm(new SpringLayoutAlgorithm()); + viewer.setInput(new Object()); + viewer.addSelectionChangedListener(new ISelectionChangedListener() { + + public void selectionChanged(SelectionChangedEvent event) { + System.out.println("Selection Changed: " + + selectionToString((StructuredSelection) event + .getSelection())); + } + + private String selectionToString(StructuredSelection selection) { + StringBuffer stringBuffer = new StringBuffer(); + Iterator iterator = selection.iterator(); + boolean first = true; + while (iterator.hasNext()) { + if (first) { + first = false; + } else { + stringBuffer.append(" : "); + } + stringBuffer.append(iterator.next()); + } + return stringBuffer.toString(); + } + + }); + shell.open(); + while (!shell.isDisposed()) { + while (!d.readAndDispatch()) { + d.sleep(); + } + } + + } +} |

