Package net.sf.latexdraw.ui

Source Code of net.sf.latexdraw.ui.PropertiesToolbarBuilder

package net.sf.latexdraw.ui;

import java.awt.Component;
import java.awt.FlowLayout;
import java.util.IdentityHashMap;
import java.util.Map;

import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JComponent;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;

import net.sf.latexdraw.glib.ui.LCanvas;
import net.sf.latexdraw.instruments.*;
import net.sf.latexdraw.lang.LangTool;
import net.sf.latexdraw.util.LResources;

import org.malai.swing.ui.SwingUIComposer;
import org.malai.swing.widget.MPanel;
import org.malai.swing.widget.MProgressBar;

/**
* The composer that creates the properties tool bar of the application.<br>
* <br>
* This file is part of LaTeXDraw.<br>
* Copyright (c) 2005-2014 Arnaud BLOUIN<br>
* <br>
* LaTeXDraw is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later version.
* <br>
* LaTeXDraw is distributed without any warranty; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.<br>
* <br>
* 12/08/11<br>
* @author Arnaud BLOUIN
* @since 3.0
*/
public class PropertiesToolbarBuilder extends SwingUIComposer<MPanel> {
  /** The main frame of the application. */
  protected final LFrame frame;

  /** The hash map used to map a widget to its container. */
  protected final Map<Component, WidgetMiniToolbar> mapContainers;


  /**
   * Creates the bottom panel that contains a set of widgets to modify shapes.
   * @param frame The frame that will contains the tool bar.
   * @throws IllegalArgumentException If the given instrument is null.
   * @since 3.0
   */
  public PropertiesToolbarBuilder(final LFrame frame) {
    super();
    this.frame     = frame;
    mapContainers  = new IdentityHashMap<>();
  }


  @Override
  public void compose(final MProgressBar progressBar) {
    final LCanvas canvas = frame.getCanvas();
    final MetaShapeCustomiser metaShapeCustomiser = frame.getMetaShapeCustomiser();

    widget = new MPanel(false, true);
    widget.setLayout(new FlowLayout(FlowLayout.LEFT));

    // Creation of the widgets layout of the shape properties instruments.
    composeJoinShapesWidgets(metaShapeCustomiser.getShapeGrouper());
    widget.add(composeRotationToolbar(metaShapeCustomiser.getRotationCustomiser(), canvas));
    widget.add(composeShapePositionerWidgets(metaShapeCustomiser.getShapePositioner(), canvas));
    widget.add(composeMirrorShapes(metaShapeCustomiser.getShapeTransformer(), canvas));
    widget.add(composeAlignShapes(metaShapeCustomiser.getShapeTransformer(), canvas));
    widget.add(composeDistributeShapes(metaShapeCustomiser.getShapeTransformer(), canvas));
    widget.add(composeDimPosPropertiesToolbar(metaShapeCustomiser.getDimPosCustomiser(), canvas));
    widget.add(composeBorderPropertiesPanel(metaShapeCustomiser.getBorderCustomiser(), canvas));
    if(progressBar!=null) progressBar.addToProgressBar(5);
    widget.add(composeDoubleBorderPropertiesPanel(metaShapeCustomiser.getDoubleBorderCustomiser(), canvas));
    widget.add(composeShadowPropertiesPanel(metaShapeCustomiser.getShadowCustomiser(), canvas));
    widget.add(composeFillingPanel(metaShapeCustomiser.getFillingCustomiser(), canvas));
    if(progressBar!=null) progressBar.addToProgressBar(5);
    widget.add(composeArrowToolbar(metaShapeCustomiser.getArrowCustomiser(), canvas));
    widget.add(composeDotToolbar(metaShapeCustomiser.getDotCustomiser(), metaShapeCustomiser.getBorderCustomiser(), canvas));
    widget.add(composeTextPositionToolbar(metaShapeCustomiser.getTextCustomiser(), canvas));
    widget.add(composeTextPropertiesToolbar(metaShapeCustomiser.getTextCustomiser(), canvas));
    widget.add(composeArcPropertiesWidgets(metaShapeCustomiser.getArcCustomiser(), canvas));
    widget.add(composeStandardGridPropertiesToolbar(metaShapeCustomiser.getStandardGridCustomiser(), canvas));
    widget.add(composeGridPropertiesToolbar(metaShapeCustomiser.getGridCustomiser(), canvas));
    widget.add(composeAxesPropertiesToolbar(metaShapeCustomiser.getAxesCustomiser(), canvas));
    widget.add(composeGridLabelsPropertiesToolbar(metaShapeCustomiser.getAxesCustomiser(), metaShapeCustomiser.getGridCustomiser(),
          metaShapeCustomiser.getStandardGridCustomiser(), canvas));
    widget.add(composePlotWidgets(metaShapeCustomiser.getPlotCustomiser(), canvas));
    widget.add(composeFreeHandPropertiesToolbar(metaShapeCustomiser.getFreeHandCustomiser(), canvas));
    if(progressBar!=null) progressBar.addToProgressBar(5);
  }


  protected WidgetMiniToolbar composePlotWidgets(final ShapePlotCustomiser plotCustom, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.PLOT_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText("Customizes plots' properties.");
    list.addComponent(plotCustom.getPolarCB());
    list.addComponent(plotCustom.getPlotStyleCB());
    UIBuilder.addSpinner(list, plotCustom.getNbPtsSpinner(), 70);
    UIBuilder.addSpinner(list, plotCustom.getMinXSpinner(), 70);
    UIBuilder.addSpinner(list, plotCustom.getMaxXSpinner(), 70);
    UIBuilder.addSpinner(list, plotCustom.getXScaleSpinner(), 70);
    UIBuilder.addSpinner(list, plotCustom.getYScaleSpinner(), 70);
    list.addSeparator();
    mapContainers.put(plotCustom.getNbPtsSpinner(), list);
    mapContainers.put(plotCustom.getMinXSpinner(), list);
    mapContainers.put(plotCustom.getMaxXSpinner(), list);
    mapContainers.put(plotCustom.getXScaleSpinner(), list);
    mapContainers.put(plotCustom.getYScaleSpinner(), list);
    mapContainers.put(plotCustom.getPolarCB(), list);
    mapContainers.put(plotCustom.getPlotStyleCB(), list);
    plotCustom.addEventable(list.getToolbar());
    list.setVisible(false);
    return list;
  }


  // Creates the tool bar for place shapes.
  protected WidgetMiniToolbar composeShapePositionerWidgets(final ShapePositioner ins, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.FOREGROUND_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getString17("LaTeXDrawFrame.6")); //$NON-NLS-1$
    list.addComponent(ins.getForegroundButton());
    list.addComponent(ins.getBackgroundButton());
    list.addSeparator();
    mapContainers.put(ins.getForegroundButton(), list);
    mapContainers.put(ins.getBackgroundButton(), list);
    ins.addEventable(list.getToolbar());
    list.setVisible(false);
    return list;
  }


  // Creates the tool bar for mirroring shapes.
  protected WidgetMiniToolbar composeDistributeShapes(final ShapeTransformer transformer, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.DIST_VERT_EQUAL_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getStringLaTeXDrawFrame("LFrame2.8")); //$NON-NLS-1$
    list.addComponent(transformer.distribVertEq());
    list.addComponent(transformer.distribVertMid());
    list.addComponent(transformer.distribVertTop());
    list.addComponent(transformer.distribVertBot());
    list.addComponent(transformer.distribHorizEq());
    list.addComponent(transformer.distribHorizMid());
    list.addComponent(transformer.distribHorizLeft());
    list.addComponent(transformer.distribHorizRight());
    list.addSeparator();
    mapContainers.put(transformer.distribHorizEq(), list);
    mapContainers.put(transformer.distribHorizLeft(), list);
    mapContainers.put(transformer.distribHorizRight(), list);
    mapContainers.put(transformer.distribHorizMid(), list);
    mapContainers.put(transformer.distribVertEq(), list);
    mapContainers.put(transformer.distribVertTop(), list);
    mapContainers.put(transformer.distribVertBot(), list);
    mapContainers.put(transformer.distribVertMid(), list);
    transformer.addEventable(list.getToolbar());
    list.setVisible(false);
    return list;
  }

  // Creates the tool bar for mirroring shapes.
  protected WidgetMiniToolbar composeAlignShapes(final ShapeTransformer transformer, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.ALIGN_LEFT_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getStringLaTeXDrawFrame("LFrame2.1"));//$NON-NLS-1$
    list.addComponent(transformer.alignLeft());
    list.addComponent(transformer.alignRight());
    list.addComponent(transformer.alignBot());
    list.addComponent(transformer.alignTop());
    list.addComponent(transformer.alignMidHoriz());
    list.addComponent(transformer.alignMidVert());
    list.addSeparator();
    mapContainers.put(transformer.alignLeft(), list);
    mapContainers.put(transformer.alignRight(), list);
    mapContainers.put(transformer.alignBot(), list);
    mapContainers.put(transformer.alignTop(), list);
    mapContainers.put(transformer.alignMidHoriz(), list);
    mapContainers.put(transformer.alignMidVert(), list);
    transformer.addEventable(list.getToolbar());
    list.setVisible(false);
    return list;
  }


  // Creates the tool bar for mirroring shapes.
  protected WidgetMiniToolbar composeMirrorShapes(final ShapeTransformer transformer, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.MIRROR_H_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getString18("LaTeXDrawFrame.6")); //$NON-NLS-1$
    list.addComponent(transformer.mirrorH());
    list.addComponent(transformer.mirrorV());
    list.addSeparator();
    mapContainers.put(transformer.mirrorH(), list);
    mapContainers.put(transformer.mirrorV(), list);
    transformer.addEventable(list.getToolbar());
    list.setVisible(false);
    return list;
  }


  // Composition of the widgets that joins/separates shapes.
  protected void composeJoinShapesWidgets(final ShapeGrouper grouper) {
    widget.add(grouper.getGroupB());
    widget.add(grouper.getSepB());
    grouper.addEventable(widget);
  }


  /** Creates the toolbar containing the widgets that customises axes. */
  protected WidgetMiniToolbar composeFreeHandPropertiesToolbar(final ShapeFreeHandCustomiser cust, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.FREE_HAND_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getStringActions("PropBuilder.1")); //$NON-NLS-1$

    UIBuilder.addCombobox(list, cust.getFreeHandType());
    UIBuilder.addSpinner(list, cust.getGapPoints(), 50);
    list.addComponent(cust.getOpen());
    list.addSeparator();

    mapContainers.put(cust.getFreeHandType(), list);
    mapContainers.put(cust.getGapPoints(), list);
    mapContainers.put(cust.getOpen(), list);

    cust.addEventable(list.getToolbar());
    list.setVisible(false);
    return list;
  }


  /** Creates the toolbar containing the widgets that customises grids' labels. */
  protected WidgetMiniToolbar composeGridLabelsPropertiesToolbar(final ShapeAxesCustomiser axeCust, final ShapeGridCustomiser gridCust,
                                  final ShapeStandardGridCustomiser stdGridCust, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.GRID_LABELS, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getStringActions("PropBuilder.2")); //$NON-NLS-1$

    final MPanel p1 = new MPanel(false, true);
    final MPanel p2 = new MPanel(false, true);
    final MPanel p3 = new MPanel(false, false);
    p1.setLayout(new BoxLayout(p1, BoxLayout.X_AXIS));
    p2.setLayout(new BoxLayout(p2, BoxLayout.X_AXIS));
    p3.setLayout(new BoxLayout(p3, BoxLayout.Y_AXIS));
    UIBuilder.addSpinner(p1, stdGridCust.getLabelsSizeS(), 50);
    UIBuilder.addCombobox(p1, axeCust.getShowLabels());
    p1.add(gridCust.getColourLabels());
    p1.add(axeCust.getShowOrigin());
    p1.add(gridCust.getLabelsXInvertedCB());
    p1.add(gridCust.getLabelsYInvertedCB());
    UIBuilder.addSpinner(p2, axeCust.getIncrLabelX(), 50);
    UIBuilder.addSpinner(p2, axeCust.getIncrLabelY(), 50);
    UIBuilder.addSpinner(p2, axeCust.getDistLabelsX(), 60);
    UIBuilder.addSpinner(p2, axeCust.getDistLabelsY(), 60);
    p3.add(p1);
    p3.add(p2);
    list.addComponent(p3);
    list.addSeparator();

    mapContainers.put(axeCust.getShowLabels(), list);
    mapContainers.put(gridCust.getColourLabels(), list);
    mapContainers.put(axeCust.getShowOrigin(), list);
    mapContainers.put(axeCust.getIncrLabelX(), list);
    mapContainers.put(axeCust.getIncrLabelY(), list);
    mapContainers.put(axeCust.getDistLabelsX(), list);
    mapContainers.put(axeCust.getDistLabelsY(), list);
    mapContainers.put(stdGridCust.getLabelsSizeS(), list);
    mapContainers.put(gridCust.getLabelsXInvertedCB(), list);
    mapContainers.put(gridCust.getLabelsYInvertedCB(), list);

    axeCust.addEventable(p1);
    stdGridCust.addEventable(p1);
    gridCust.addEventable(p1);
    axeCust.addEventable(p2);
    stdGridCust.addEventable(p2);
    gridCust.addEventable(p2);
    list.setVisible(false);
    return list;
  }


  /** Creates the toolbar containing the widgets that customises axes. */
  protected WidgetMiniToolbar composeAxesPropertiesToolbar(final ShapeAxesCustomiser cust, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.AXES_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getStringActions("PropBuilder.3")); //$NON-NLS-1$
    final MPanel panel     = new MPanel(false, true);
    final MPanel ticksPanel = new MPanel(false, true);

    ticksPanel.setBorder(new CompoundBorder(new TitledBorder(null, LangTool.INSTANCE.getString18("ParametersAxeFrame.17"), //$NON-NLS-1$
          TitledBorder.LEFT, TitledBorder.TOP), new EmptyBorder(0,0,0,0)));

    panel.add(cust.getShapeAxes());

    UIBuilder.addCombobox(ticksPanel, cust.getShapeTicks());
//    UIBuilder.addSpinner(ticksPanel, cust.getTicksSizeS(), 70);
    UIBuilder.addCombobox(ticksPanel, cust.getShowTicks());

    list.addComponent(panel);
    list.addComponent(ticksPanel);
    list.addSeparator();

    mapContainers.put(cust.getShapeAxes(), list);
    mapContainers.put(cust.getShapeTicks(), list);
//    mapContainers.put(cust.getTicksSizeS(), list);
    mapContainers.put(cust.getShowTicks(), list);
    list.setVisible(false);
    cust.addEventable(panel);
    cust.addEventable(ticksPanel);
    return list;
  }


  protected WidgetMiniToolbar composeGridPropertiesToolbar(final ShapeGridCustomiser cust, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.SUBGRID_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getStringActions("PropBuilder.4")); //$NON-NLS-1$

    UIBuilder.addSpinner(list, cust.getGridWidth(), 60);
    UIBuilder.addSpinner(list, cust.getSubGridWidth(), 60);
    list.addComponent(cust.getColourSubGrid());
    UIBuilder.addSpinner(list, cust.getGridDots(), 50);
    UIBuilder.addSpinner(list, cust.getSubGridDots(), 50);
    UIBuilder.addSpinner(list, cust.getSubGridDiv(), 50);
    list.addSeparator();

    mapContainers.put(cust.getColourSubGrid(), list);
    mapContainers.put(cust.getGridWidth(), list);
    mapContainers.put(cust.getSubGridWidth(), list);
    mapContainers.put(cust.getGridDots(), list);
    mapContainers.put(cust.getSubGridDots(), list);
    mapContainers.put(cust.getSubGridDiv(), list);
    cust.addEventable(list.getToolbar());
    list.setVisible(false);
    return list;
  }


  protected WidgetMiniToolbar composeStandardGridPropertiesToolbar(final ShapeStandardGridCustomiser cust, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.GRID_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getStringActions("PropBuilder.5")); //$NON-NLS-1$

    UIBuilder.addSpinner(list, cust.getxStartS(), 50);
    UIBuilder.addSpinner(list, cust.getyStartS(), 50);
    UIBuilder.addSpinner(list, cust.getxEndS(), 50);
    UIBuilder.addSpinner(list, cust.getyEndS(), 50);
    UIBuilder.addSpinner(list, cust.getxOriginS(), 50);
    UIBuilder.addSpinner(list, cust.getyOriginS(), 50);
    list.addSeparator();

    mapContainers.put(cust.getxStartS(), list);
    mapContainers.put(cust.getyStartS(), list);
    mapContainers.put(cust.getxEndS(), list);
    mapContainers.put(cust.getyEndS(), list);
    mapContainers.put(cust.getxOriginS(), list);
    mapContainers.put(cust.getyOriginS(), list);
    list.setVisible(false);
    cust.addEventable(list.getToolbar());
    return list;
  }


  protected WidgetMiniToolbar composeDimPosPropertiesToolbar(final ShapeCoordDimCustomiser cust, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.DIM_POS_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getStringActions("PropBuilder.6")); //$NON-NLS-1$

    UIBuilder.addSpinner(list, cust.getTlxS(), 90);
    UIBuilder.addSpinner(list, cust.getTlyS(), 90);
    list.addSeparator();

    mapContainers.put(cust.getTlxS(), list);
    mapContainers.put(cust.getTlyS(), list);
    list.setVisible(false);
    cust.addEventable(list.getToolbar());
    return list;
  }


  protected WidgetMiniToolbar composeTextPropertiesToolbar(final TextCustomiser textCustomiser, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.TEXT_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getStringActions("PropBuilder.7")); //$NON-NLS-1$

    list.addComponent(textCustomiser.getPackagesLabel());
    list.addComponent(textCustomiser.getPackagesField().getScrollpane());
    list.addComponent(textCustomiser.getLogField().getScrollpane());
    list.addSeparator();

    mapContainers.put(textCustomiser.getPackagesLabel(), list);
    mapContainers.put(textCustomiser.getPackagesField().getScrollpane(), list);
    mapContainers.put(textCustomiser.getLogField().getScrollpane(), list);
    list.setVisible(false);
    textCustomiser.addEventable(textCustomiser.getPackagesField());
    return list;
  }


  protected WidgetMiniToolbar composeTextPositionToolbar(final TextCustomiser textCustomiser, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.TEXTPOS_BL, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getStringActions("PropBuilder.8")); //$NON-NLS-1$
    list.addComponent(textCustomiser.getBlButton());
    list.addComponent(textCustomiser.getBButton());
    list.addComponent(textCustomiser.getBrButton());
    list.addComponent(textCustomiser.getTlButton());
    list.addComponent(textCustomiser.getTButton());
    list.addComponent(textCustomiser.getTrButton());
    list.addComponent(textCustomiser.getCentreButton());
    list.addComponent(textCustomiser.getLButton());
    list.addComponent(textCustomiser.getRButton());

    mapContainers.put(textCustomiser.getBlButton(), list);
    mapContainers.put(textCustomiser.getBButton(), list);
    mapContainers.put(textCustomiser.getBrButton(), list);
    mapContainers.put(textCustomiser.getTlButton(), list);
    mapContainers.put(textCustomiser.getTButton(), list);
    mapContainers.put(textCustomiser.getTrButton(), list);
    mapContainers.put(textCustomiser.getCentreButton(), list);
    mapContainers.put(textCustomiser.getLButton(), list);
    mapContainers.put(textCustomiser.getRButton(), list);
    list.addSeparator();
    list.setVisible(false);
    textCustomiser.addEventable(list.getToolbar());
    return list;
  }


  protected JComponent composeArcPropertiesWidgets(final ShapeArcCustomiser ins, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.ARC_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getStringActions("PropBuilder.9")); //$NON-NLS-1$

    list.addComponent(ins.getArcB());
    list.addComponent(ins.getChordB());
    list.addComponent(ins.getWedgeB());
    UIBuilder.addSpinner(list, ins.getStartAngleS(), 70);
    UIBuilder.addSpinner(list, ins.getEndAngleS(), 70);
    list.addSeparator();

    mapContainers.put(ins.getArcB(), list);
    mapContainers.put(ins.getChordB(), list);
    mapContainers.put(ins.getWedgeB(), list);
    mapContainers.put(ins.getStartAngleS(), list);
    mapContainers.put(ins.getEndAngleS(), list);

        ins.addEventable(list.getToolbar());
        list.setVisible(false);
    return list;
  }


  protected JComponent composeDotToolbar(final ShapeDotCustomiser ins, final ShapeBorderCustomiser sbc, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.DOT_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getStringActions("PropBuilder.10")); //$NON-NLS-1$

    list.addComponent(sbc.getShowPoints());

    list.addComponent(ins.getDotCB());
    UIBuilder.addSpinner(list, ins.getDotSizeField(), 70);
    list.addComponent(ins.getFillingB());
    list.addSeparator();

    mapContainers.put(sbc.getShowPoints(), list);
    mapContainers.put(ins.getDotCB(), list);
    mapContainers.put(ins.getDotSizeField(), list);
    mapContainers.put(ins.getFillingB(), list);

        ins.addEventable(list.getToolbar());
        sbc.addEventable(list.getToolbar());
        list.setVisible(false);
    return list;
  }


  protected JComponent composeArrowToolbar(final ShapeArrowCustomiser ins, final LCanvas canvas) {
    final int size = 70;
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.ARROW_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getStringActions("PropBuilder.11")); //$NON-NLS-1$

    list.addComponent(ins.getArrowLeftCB());
    list.addComponent(ins.getArrowRightCB());
    UIBuilder.addSpinner(list, ins.getArrowInset(), size);
    UIBuilder.addSpinner(list, ins.getArrowLength(), size);
    UIBuilder.addSpinner(list, ins.getArrowSizeNum(), size);
    UIBuilder.addSpinner(list, ins.getArrowSizeDim(), size);
    UIBuilder.addSpinner(list, ins.getBracketNum(), size);
    UIBuilder.addSpinner(list, ins.getTbarsizeNum(), size);
    UIBuilder.addSpinner(list, ins.getTbarsizeDim(), size);
    UIBuilder.addSpinner(list, ins.getDotSizeNum(), size);
    UIBuilder.addSpinner(list, ins.getDotSizeDim(), size);
    UIBuilder.addSpinner(list, ins.getRbracketNum(), size);

    list.addSeparator();

    mapContainers.put(ins.getArrowLeftCB(), list);
    mapContainers.put(ins.getArrowRightCB(), list);
    mapContainers.put(ins.getArrowInset(), list);
    mapContainers.put(ins.getArrowLength(), list);
    mapContainers.put(ins.getArrowSizeNum(), list);
    mapContainers.put(ins.getArrowSizeDim(), list);
    mapContainers.put(ins.getTbarsizeNum(), list);
    mapContainers.put(ins.getTbarsizeDim(), list);
    mapContainers.put(ins.getBracketNum(), list);
    mapContainers.put(ins.getRbracketNum(), list);
    mapContainers.put(ins.getDotSizeNum(), list);
    mapContainers.put(ins.getDotSizeDim(), list);

        ins.addEventable(list.getToolbar());
        list.setVisible(false);
    return list;
  }



  protected JComponent composeRotationToolbar(final ShapeRotationCustomiser ins, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.ROTATE_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
        list.setToolTipText(LangTool.INSTANCE.getString18("LaTeXDrawFrame.2")); //$NON-NLS-1$

        UIBuilder.addSpinner(list, ins.getRotationField(), 65);
        list.addComponent(ins.getRotate90Button());
        list.addComponent(ins.getRotate180Button());
        list.addComponent(ins.getRotate270Button());
        list.addSeparator();

        mapContainers.put(ins.getRotationField(), list);
        mapContainers.put(ins.getRotate90Button(), list);
        mapContainers.put(ins.getRotate180Button(), list);
        mapContainers.put(ins.getRotate270Button(), list);

        ins.addEventable(list.getToolbar());
        list.setVisible(false);
    return list;
  }


  /**
   * Creates the widget that contains the widgets dedicated to the modification of shapes filling properties.
   * @param fillingCustomiser The instrument that contains the widgets.
   * @return The created widget. Cannot be null.
   * @since 3.0
   */
  protected JComponent composeFillingPanel(final ShapeFillingCustomiser fillingCustomiser, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.FILLING_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getStringActions("PropBuilder.12")); //$NON-NLS-1$
    list.addComponent(fillingCustomiser.getFillStyleCB());
    list.addComponent(Box.createHorizontalStrut(UIBuilder.SEPARATION_WIDTH));
    list.addComponent(fillingCustomiser.getFillColButton());
    list.addComponent(Box.createHorizontalStrut(UIBuilder.SEPARATION_WIDTH));
    list.addComponent(fillingCustomiser.getHatchColButton());
    list.addComponent(Box.createHorizontalStrut(UIBuilder.SEPARATION_WIDTH));
    UIBuilder.addSpinner(list, fillingCustomiser.getHatchAngleField(), 65);
    list.addComponent(Box.createHorizontalStrut(UIBuilder.SEPARATION_WIDTH));
    UIBuilder.addSpinner(list, fillingCustomiser.getHatchWidthField(), 60);
    list.addComponent(Box.createHorizontalStrut(UIBuilder.SEPARATION_WIDTH));
    UIBuilder.addSpinner(list, fillingCustomiser.getHatchSepField(), 65);
    list.addComponent(Box.createHorizontalStrut(UIBuilder.SEPARATION_WIDTH));
    list.addComponent(fillingCustomiser.getGradStartColButton());
    list.addComponent(Box.createHorizontalStrut(UIBuilder.SEPARATION_WIDTH));
    list.addComponent(fillingCustomiser.getGradEndColButton());
    list.addComponent(Box.createHorizontalStrut(UIBuilder.SEPARATION_WIDTH));
    UIBuilder.addSpinner(list, fillingCustomiser.getGradAngleField(), 60);
    list.addComponent(Box.createHorizontalStrut(UIBuilder.SEPARATION_WIDTH));
    UIBuilder.addSpinner(list, fillingCustomiser.getGradMidPtField(), 70);
    list.addSeparator();

    mapContainers.put(fillingCustomiser.getFillStyleCB(), list);
    mapContainers.put(fillingCustomiser.getFillColButton(), list);
    mapContainers.put(fillingCustomiser.getHatchColButton(), list);
    mapContainers.put(fillingCustomiser.getHatchAngleField(), list);
    mapContainers.put(fillingCustomiser.getHatchWidthField(), list);
    mapContainers.put(fillingCustomiser.getHatchSepField(), list);
    mapContainers.put(fillingCustomiser.getGradStartColButton(), list);
    mapContainers.put(fillingCustomiser.getGradEndColButton(), list);
    mapContainers.put(fillingCustomiser.getGradAngleField(), list);
    mapContainers.put(fillingCustomiser.getGradMidPtField(), list);

    fillingCustomiser.addEventable(list.getToolbar());
    list.setVisible(false);
    return list;
  }


  /**
   * Creates the widget that contains the widgets dedicated to the modification of shapes double border properties.
   * @param shadowCustomiser The instrument that contains the widgets.
   * @return The created widget. Cannot be null.
   * @since 3.0
   */
  protected JComponent composeShadowPropertiesPanel(final ShapeShadowCustomiser shadowCustomiser, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.SHADOW_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getStringActions("PropBuilder.13")); //$NON-NLS-1$
    list.addComponent(shadowCustomiser.getShadowCB());
    list.addComponent(Box.createHorizontalStrut(UIBuilder.SEPARATION_WIDTH));
    list.addComponent(shadowCustomiser.getShadowColB());
    list.addComponent(Box.createHorizontalStrut(UIBuilder.SEPARATION_WIDTH));
    UIBuilder.addSpinner(list, shadowCustomiser.getShadowSizeField(), 75);
    list.addComponent(Box.createHorizontalStrut(UIBuilder.SEPARATION_WIDTH));
    UIBuilder.addSpinner(list, shadowCustomiser.getShadowAngleField(), 75);
    list.addSeparator();

    mapContainers.put(shadowCustomiser.getShadowCB(), list);
    mapContainers.put(shadowCustomiser.getShadowColB(), list);
    mapContainers.put(shadowCustomiser.getShadowSizeField(), list);
    mapContainers.put(shadowCustomiser.getShadowAngleField(), list);

    shadowCustomiser.addEventable(list.getToolbar());
    list.setVisible(false);
    return list;
  }


  /**
   * Creates the widget that contains the widgets dedicated to the modification of shapes double border properties.
   * @param dbleBorderCustomiser The instrument that contains the widgets.
   * @return The created widget. Cannot be null.
   * @since 3.0
   */
  protected JComponent composeDoubleBorderPropertiesPanel(final ShapeDoubleBorderCustomiser dbleBorderCustomiser, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.DOUBLE_BORDER_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getStringActions("PropBuilder.14")); //$NON-NLS-1$
    list.addComponent(dbleBorderCustomiser.getDbleBoundCB());
    list.addComponent(Box.createHorizontalStrut(UIBuilder.SEPARATION_WIDTH));
    list.addComponent(dbleBorderCustomiser.getDbleBoundColB());
    list.addComponent(Box.createHorizontalStrut(UIBuilder.SEPARATION_WIDTH));
    UIBuilder.addSpinner(list, dbleBorderCustomiser.getDbleSepField(), 55);
    list.addSeparator();

    mapContainers.put(dbleBorderCustomiser.getDbleBoundCB(), list);
    mapContainers.put(dbleBorderCustomiser.getDbleBoundColB(), list);
    mapContainers.put(dbleBorderCustomiser.getDbleSepField(), list);

    dbleBorderCustomiser.addEventable(list.getToolbar());
    list.setVisible(false);
    return list;
  }


  /**
   * Creates the widget that contains the widgets dedicated to the modification of shapes border properties.
   * @param borderCustomiser The instrument that contains the widgets.
   * @return The created widget. Cannot be null.
   * @since 3.0
   */
  protected JComponent composeBorderPropertiesPanel(final ShapeBorderCustomiser borderCustomiser, final LCanvas canvas) {
    final WidgetMiniToolbar list = new WidgetMiniToolbar(LResources.BORDER_ICON, WidgetMiniToolbar.LOCATION_NORTH, canvas);
    list.setToolTipText(LangTool.INSTANCE.getStringActions("PropBuilder.15")); //$NON-NLS-1$

    UIBuilder.addSpinner(list, borderCustomiser.getThicknessField(), 65);
    list.addComponent(Box.createHorizontalStrut(UIBuilder.SEPARATION_WIDTH));
    list.addComponent(borderCustomiser.getLineColButton());
    list.addComponent(Box.createHorizontalStrut(UIBuilder.SEPARATION_WIDTH));
    list.addComponent(borderCustomiser.getLineCB());
    list.addComponent(Box.createHorizontalStrut(UIBuilder.SEPARATION_WIDTH));
    list.addComponent(borderCustomiser.getBordersPosCB());
    list.addComponent(Box.createHorizontalStrut(UIBuilder.SEPARATION_WIDTH));
    UIBuilder.addSpinner(list, borderCustomiser.getFrameArcField(), 65);
    list.addSeparator();

    mapContainers.put(borderCustomiser.getThicknessField(), list);
    mapContainers.put(borderCustomiser.getLineColButton(), list);
    mapContainers.put(borderCustomiser.getLineCB(), list);
    mapContainers.put(borderCustomiser.getBordersPosCB(), list);
    mapContainers.put(borderCustomiser.getFrameArcField(), list);

    borderCustomiser.addEventable(list.getToolbar());
    list.setVisible(false);
    return list;
  }
}
TOP

Related Classes of net.sf.latexdraw.ui.PropertiesToolbarBuilder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.