private JToolBar graphActionsToolbar()

in taverna-graph-view/src/main/java/org/apache/taverna/workbench/views/graph/GraphViewComponent.java [267:425]


	private JToolBar graphActionsToolbar(Workflow workflow,
			final SVGGraphController graphController, JSVGCanvas svgCanvas,
			Alignment alignment, PortStyle portStyle) {
		JToolBar toolBar = new JToolBar();

		JButton resetDiagramButton = new JButton();
		resetDiagramButton.setBorder(new EmptyBorder(0, 2, 0, 2));
		JButton zoomInButton = new JButton();
		zoomInButton.setBorder(new EmptyBorder(0, 2, 0, 2));
		JButton zoomOutButton = new JButton();
		zoomOutButton.setBorder(new EmptyBorder(0, 2, 0, 2));

		Action resetDiagramAction = svgCanvas.new ResetTransformAction();
		ResetDiagramAction.setDesignAction(resetDiagramAction);
		resetDiagramAction.putValue(SHORT_DESCRIPTION, "Reset Diagram");
		resetDiagramAction.putValue(SMALL_ICON, refreshIcon);
		resetDiagramButton.setAction(resetDiagramAction);

		Action zoomInAction = svgCanvas.new ZoomAction(1.2);
		ZoomInAction.setDesignAction(zoomInAction);
		zoomInAction.putValue(SHORT_DESCRIPTION, "Zoom In");
		zoomInAction.putValue(SMALL_ICON, zoomInIcon);
		zoomInButton.setAction(zoomInAction);

		Action zoomOutAction = svgCanvas.new ZoomAction(1 / 1.2);
		ZoomOutAction.setDesignAction(zoomOutAction);
		zoomOutAction.putValue(SHORT_DESCRIPTION, "Zoom Out");
		zoomOutAction.putValue(SMALL_ICON, zoomOutIcon);
		zoomOutButton.setAction(zoomOutAction);

		diagramActionsMap.put(workflow, new Action[] { resetDiagramAction,
				zoomInAction, zoomOutAction });

		toolBar.add(resetDiagramButton);
		toolBar.add(zoomInButton);
		toolBar.add(zoomOutButton);

		toolBar.addSeparator();

		ButtonGroup nodeTypeGroup = new ButtonGroup();

		JToggleButton noPorts = new JToggleButton();
		JToggleButton allPorts = new JToggleButton();
		JToggleButton blobs = new JToggleButton();
		nodeTypeGroup.add(noPorts);
		nodeTypeGroup.add(allPorts);
		nodeTypeGroup.add(blobs);

		if (portStyle.equals(PortStyle.NONE))
			noPorts.setSelected(true);
		else if (portStyle.equals(PortStyle.ALL))
			allPorts.setSelected(true);
		else
			blobs.setSelected(true);

		noPorts.setAction(new AbstractAction() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				graphController.setPortStyle(PortStyle.NONE);
				graphController.redraw();
			}
		});
		noPorts.getAction().putValue(SHORT_DESCRIPTION,
				"Display no service ports");
		noPorts.getAction().putValue(SMALL_ICON, noportIcon);
		noPorts.setFocusPainted(false);

		allPorts.setAction(new AbstractAction() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				graphController.setPortStyle(PortStyle.ALL);
				graphController.redraw();
			}
		});
		allPorts.getAction().putValue(SHORT_DESCRIPTION,
				"Display all service ports");
		allPorts.getAction().putValue(SMALL_ICON, allportIcon);
		allPorts.setFocusPainted(false);

		blobs.setAction(new AbstractAction() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				graphController.setPortStyle(PortStyle.BLOB);
				graphController.redraw();
			}
		});
		blobs.getAction().putValue(SHORT_DESCRIPTION,
				"Display services as circles");
		blobs.getAction().putValue(SMALL_ICON, blobIcon);
		blobs.setFocusPainted(false);

		toolBar.add(noPorts);
		toolBar.add(allPorts);
		toolBar.add(blobs);

		toolBar.addSeparator();

		ButtonGroup alignmentGroup = new ButtonGroup();

		JToggleButton vertical = new JToggleButton();
		JToggleButton horizontal = new JToggleButton();
		alignmentGroup.add(vertical);
		alignmentGroup.add(horizontal);

		if (alignment.equals(Alignment.VERTICAL)) {
			vertical.setSelected(true);
		} else {
			horizontal.setSelected(true);
		}

		vertical.setAction(new AbstractAction() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				graphController.setAlignment(Alignment.VERTICAL);
				graphController.redraw();
			}
		});
		vertical.getAction().putValue(SHORT_DESCRIPTION,
				"Align services vertically");
		vertical.getAction().putValue(SMALL_ICON, verticalIcon);
		vertical.setFocusPainted(false);

		horizontal.setAction(new AbstractAction() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				graphController.setAlignment(Alignment.HORIZONTAL);
				graphController.redraw();
			}

		});
		horizontal.getAction().putValue(SHORT_DESCRIPTION,
				"Align services horizontally");
		horizontal.getAction().putValue(SMALL_ICON, horizontalIcon);
		horizontal.setFocusPainted(false);

		toolBar.add(vertical);
		toolBar.add(horizontal);

		toolBar.addSeparator();

		JToggleButton expandNested = new JToggleButton();
		expandNested.setSelected(true);

		expandNested.setAction(new AbstractAction() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				graphController.setExpandNestedDataflows(!graphController
						.expandNestedDataflows());
				graphController.redraw();
			}
		});
		expandNested.getAction().putValue(SHORT_DESCRIPTION,
				"Expand Nested Workflows");
		expandNested.getAction().putValue(SMALL_ICON, expandNestedIcon);
		expandNested.setFocusPainted(false);
		toolBar.add(expandNested);

		return toolBar;
	}