Example usage for com.jgoodies.forms.builder PanelBuilder build

List of usage examples for com.jgoodies.forms.builder PanelBuilder build

Introduction

In this page you can find the example usage for com.jgoodies.forms.builder PanelBuilder build.

Prototype

public final JPanel build() 

Source Link

Document

Returns the panel used to build the form.

Usage

From source file:com.jhash.oimadmin.ui.ConnectionDetails.java

License:Apache License

private JPanel buildComponent() {
    FormLayout eventHandlerFormLayout = new FormLayout(
            "3dlu, right:pref, 3dlu, pref:grow, 5dlu, right:pref, 3dlu, pref:grow, 5dlu",
            "5dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu,p, 3dlu, p, 3dlu, p, 3dlu, p,3dlu, p, 3dlu, p ");
    eventHandlerFormLayout.setColumnGroups(new int[][] { { 2, 6 } });
    CellConstraints cellConstraint = new CellConstraints();
    PanelBuilder builder = new PanelBuilder(eventHandlerFormLayout);
    builder.addLabel("Name", cellConstraint.xy(2, 2));
    builder.add(nameLabel, cellConstraint.xy(4, 2));
    builder.addLabel("OIM Home Directory", cellConstraint.xy(6, 2));
    JFileChooser fileChooser = new JFileChooser();
    fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    oimHome.addFocusListener(new FocusListener() {
        boolean focusAfterShowFileChooser = false;

        @Override// ww  w .j a v  a2 s.c o  m
        public void focusGained(FocusEvent e) {
            if (focusAfterShowFileChooser)
                return;
            fileChooser.setSelectedFile(new File(oimHome.getText()));
            int returnedResult = fileChooser.showOpenDialog(ConnectionDetails.this);
            if (returnedResult == JFileChooser.APPROVE_OPTION) {
                File file = fileChooser.getSelectedFile();
                oimHome.setText(file.getAbsolutePath());
            }
        }

        @Override
        public void focusLost(FocusEvent e) {
            focusAfterShowFileChooser = fileChooser.isShowing();
        }
    });
    builder.add(oimHome, cellConstraint.xy(8, 2));

    builder.addSeparator("OIM Connection", cellConstraint.xyw(2, 4, 7));
    builder.addLabel("Server Platform", cellConstraint.xy(2, 6));
    builder.add(platform, cellConstraint.xy(4, 6));
    builder.addLabel("OIM Server URL", cellConstraint.xy(6, 6));
    builder.add(oimURL, cellConstraint.xy(8, 6));

    builder.addLabel("User", cellConstraint.xy(2, 8));
    builder.add(oimUser, cellConstraint.xy(4, 8));
    builder.addLabel("Password", cellConstraint.xy(6, 8));
    builder.add(oimUserPassword, cellConstraint.xy(8, 8));

    builder.addSeparator("Weblogic Admin Server (JMX)", cellConstraint.xyw(2, 10, 7));
    builder.addLabel("Protocol", cellConstraint.xy(2, 12));
    builder.add(jmxProtocol, cellConstraint.xy(4, 12));

    builder.addLabel("Host name", cellConstraint.xy(2, 14));
    builder.add(jmxHostname, cellConstraint.xy(4, 14));
    builder.addLabel("Port", cellConstraint.xy(6, 14));
    builder.add(jmxPort, cellConstraint.xy(8, 14));

    builder.addLabel("User", cellConstraint.xy(2, 16));
    builder.add(jmxUser, cellConstraint.xy(4, 16));
    builder.addLabel("Password", cellConstraint.xy(6, 16));
    builder.add(jmxUserPassword, cellConstraint.xy(8, 16));

    builder.addSeparator("Database", cellConstraint.xyw(2, 18, 5));
    JButton testDBButton = JGComponentFactory.getCurrent().createButton("Test");
    testDBButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            Utils.executeAsyncOperation("Test Database Connection", new Runnable() {
                public void run() {
                    logger.debug("Trying to test connection using configuration {}", connectionDetails);
                    DBConnection connection = new DBConnection();
                    try {
                        connection.initialize(connectionDetails);
                        displayMessage("Database Connection", "Successfully connected to database", null);
                    } catch (Exception exception) {
                        displayMessage("Database Connection Failed",
                                "Failed to create data base connection using details", exception);
                    }
                    try {
                        connection.destroy();
                    } catch (Exception exception) {
                        logger.warn("Failed to destroy new connection. Ignoring error", exception);
                    }
                    logger.debug("Tested connection");
                }
            });
        }
    });
    builder.add(testDBButton, cellConstraint.xy(8, 18));

    builder.addLabel("Driver Class", cellConstraint.xy(2, 20));
    builder.add(dbJDBCDriverClass, cellConstraint.xy(4, 20));
    builder.addLabel("JDBC URL", cellConstraint.xy(6, 20));
    builder.add(dbJDBCURL, cellConstraint.xy(8, 20));

    builder.addLabel("User", cellConstraint.xy(2, 22));
    builder.add(dbUser, cellConstraint.xy(4, 22));
    builder.addLabel("Password", cellConstraint.xy(6, 22));
    builder.add(dbPassword, cellConstraint.xy(8, 22));

    builder.add(dbAutoCommit, cellConstraint.xy(4, 24));

    JButton saveButton = JGComponentFactory.getCurrent().createButton("&Save");
    saveButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            logger.debug("Trying to save configuration {}", connectionDetails);
            connectionDetails.getConfig().saveConfiguration(connectionDetails, false);
            String connectionName = connectionDetails.getProperty(Connection.ATTR_CONN_NAME);
            if (isNewConnection)
                ConnectionTreeNode.ConnectionsRegisterUI.addNewNode(connectionName,
                        connectionDetails.getConfig(), selectionTree, displayArea);
            destroy();
            logger.debug("Saved configuration");
        }
    });
    JButton cancelButton = JGComponentFactory.getCurrent().createButton("Cancel");
    cancelButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            destroy();
        }
    });
    builder.add(saveButton, cellConstraint.xy(4, 26));
    builder.add(cancelButton, cellConstraint.xy(6, 26));
    return builder.build();
}

From source file:com.jhash.oimadmin.ui.EventHandlerUI.java

License:Apache License

public JPanel buildEventHandlerUI() {
    logger.debug("Trying to create New Event Handler screen");
    JPanel newEventHandlerPanel = new JPanel(new BorderLayout());
    FormLayout eventHandlerFormLayout = new FormLayout(
            "right:pref, 3dlu, pref, 7dlu, right:pref, 3dlu, pref:grow",
            "p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu");
    eventHandlerFormLayout.setColumnGroups(new int[][] { { 1, 5 } });
    CellConstraints cellConstraint = new CellConstraints();
    PanelBuilder builder = new PanelBuilder(eventHandlerFormLayout);
    builder.addLabel("Name", cellConstraint.xy(1, 1));
    builder.add(nameField, cellConstraint.xy(3, 1));
    builder.addLabel("Type", cellConstraint.xy(5, 1));
    builder.add(eventHandlerTypes, cellConstraint.xy(7, 1));

    builder.addLabel("Entity Type", cellConstraint.xy(1, 3));
    builder.add(entityType, cellConstraint.xy(3, 3));
    builder.addLabel("Operation", cellConstraint.xy(5, 3));
    builder.add(operationType, cellConstraint.xy(7, 3));

    builder.addLabel("Order", cellConstraint.xy(1, 5));
    builder.add(orderField, cellConstraint.xy(3, 5));
    builder.addLabel("Type of orchestration", cellConstraint.xy(5, 5));
    builder.add(orcTargetLabel, cellConstraint.xy(7, 5));

    builder.addLabel("Synchronous ?", cellConstraint.xy(1, 7));
    builder.add(syncCheckBox, cellConstraint.xy(3, 7));
    builder.addLabel("Internal Transaction ?", cellConstraint.xy(1, 9));
    builder.add(txCheckBox, cellConstraint.xy(3, 9));

    builder.addLabel("Stage", cellConstraint.xy(5, 7));
    builder.add(stageComboBox, cellConstraint.xy(7, 7));

    builder.addLabel("Class", cellConstraint.xy(1, 11));
    builder.add(classNameText, cellConstraint.xyw(3, 11, 5));
    // builder.addLabel("MDS Location", cellConstraint.xy(1, 13));
    // builder.add(new JGTextField("/custom/eventhandler.xml"),
    // cellConstraint.xyw(3, 13, 5));

    JideTabbedPane newEventHandlerControlPane = new JideTabbedPane();
    newEventHandlerControlPane.setTabShape(JideTabbedPane.SHAPE_ROUNDED_FLAT);
    newEventHandlerControlPane.setColorTheme(JideTabbedPane.COLOR_THEME_OFFICE2003);
    newEventHandlerControlPane.setTabResizeMode(JideTabbedPane.RESIZE_MODE_NONE);
    newEventHandlerControlPane.setUseDefaultShowCloseButtonOnTab(false);
    newEventHandlerControlPane.setBoldActiveTab(true);
    newEventHandlerControlPane.setShowCloseButtonOnTab(true);
    newEventHandlerControlPane.addTab(javaCompiler.getName(), javaCompiler.getComponent());
    newEventHandlerControlPane.addTab("Configure", configurationPanel.getComponent());
    newEventHandlerControlPane.addTab("Package", packagePanel.getComponent());

    JideSplitPane eventHandlerSplitPane = new JideSplitPane(JideSplitPane.VERTICAL_SPLIT);
    eventHandlerSplitPane.add(builder.build(), 0);
    eventHandlerSplitPane.add(newEventHandlerControlPane, 1);
    eventHandlerSplitPane.setProportionalLayout(true);
    eventHandlerSplitPane.setProportions(new double[] { 0.3 });
    newEventHandlerPanel.add(eventHandlerSplitPane);
    logger.debug("Completed creation of New Event Handler screen");
    return newEventHandlerPanel;
}

From source file:de.tntinteractive.portalsammler.gui.GetPasswordDialog.java

License:Open Source License

public GetPasswordDialog(final String storeIdentifier) {
    this.setTitle("Passwortprfung");
    this.setModal(true);
    this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

    this.webcam = Webcam.getDefault();

    final JComponent webcamPanel;
    if (this.webcam != null) {
        webcamPanel = new WebcamPanel(this.webcam);
        this.timer = new Timer(200, new ActionListener() {
            @Override//w w  w . j  a  v  a2 s  .  c  o m
            public void actionPerformed(final ActionEvent e) {
                GetPasswordDialog.this.tryScan();
            }
        });
        this.timer.start();
    } else {
        webcamPanel = new JLabel("Keine Webcam gefunden!");
    }

    final PanelBuilder fields = new PanelBuilder(new FormLayout("p, 4dlu, fill:p:grow", "p"));
    fields.addLabel("&Passwort fr " + storeIdentifier);
    this.passwordField = new JPasswordField();
    fields.add(this.passwordField, CC.xy(3, 1));

    final ButtonBarBuilder bbb = new ButtonBarBuilder();
    bbb.addGlue();
    final JButton okButton = this.createOkButton();
    bbb.addButton(okButton, this.createCancelButton());
    this.getRootPane().setDefaultButton(okButton);

    final PanelBuilder panelBuilder = new PanelBuilder(
            new FormLayout("4dlu, fill:p:grow, 4dlu", "4dlu, p, 4dlu, p, 4dlu, p, 4dlu"));
    panelBuilder.add(fields.build(), CC.xy(2, 2));
    panelBuilder.add(webcamPanel, CC.xy(2, 4));
    panelBuilder.add(bbb.build(), CC.xy(2, 6));
    this.setContentPane(panelBuilder.getPanel());

    this.pack();
    this.setLocationRelativeTo(this.getOwner());
}

From source file:eu.europa.ec.markt.dss.applet.util.ComponentFactory.java

License:Open Source License

/**
 * //w  w  w .j a v  a2  s .  c om
 * @param builder
 * @param opaque
 * @param bgColor
 * @return
 */
public static JPanel createPanel(final PanelBuilder builder, final boolean opaque, final Color bgColor) {
    final JPanel panel = builder.build();
    panel.setOpaque(opaque);
    panel.setBackground(bgColor);
    return panel;
}

From source file:eu.europa.esig.dss.applet.util.ComponentFactory.java

License:Open Source License

/**
 * @param builder//  w  w  w. ja va  2  s .  com
 * @return
 */
public static JPanel createPanel(final PanelBuilder builder) {
    final JPanel panel = builder.build();
    panel.setOpaque(true);
    panel.setBackground(DEFAULT_BACKGROUND);
    return panel;
}

From source file:org.cds06.speleograph.graph.GraphEditor.java

License:Open Source License

/**
 * Creates a modal dialog by specifying the attached {@link GraphPanel}.
 * <p>Please look at {@link javax.swing.JDialog#JDialog()} to see defaults params applied to this Dialog.</p>
 *//*w  ww  . j  av  a2 s . c o  m*/
public GraphEditor(GraphPanel panel) {
    super((Frame) SwingUtilities.windowForComponent(panel), true);
    Validate.notNull(panel);
    this.graphPanel = panel;

    KeyStroke stroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
    mainPanel.registerKeyboardAction(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            setVisible(false);
        }
    }, stroke, JComponent.WHEN_IN_FOCUSED_WINDOW);

    setContentPane(mainPanel);
    mainPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    this.setTitle(I18nSupport.translate("menus.graph.graphEditor"));

    {
        // This section use FormLayout which is an external layout for Java, consult the doc before edit the
        // following lines !
        final FormLayout layout = new FormLayout(
                "right:max(40dlu;p), 4dlu, p:grow, 4dlu, p, 4dlu, p:grow, 4dlu, p", //NON-NLS
                "p,4dlu,p,4dlu,p,4dlu,p,4dlu,p" //NON-NLS
        );

        PanelBuilder builder = new PanelBuilder(layout);

        final JLabel colorLabel = new JLabel();
        final JTextField titleForGraph = new JTextField(
                graphPanel.getChart().getTitle() != null ? graphPanel.getChart().getTitle().getText() : "");
        final JLabel colorXYPlotLabel = new JLabel();
        final JLabel colorGridLabel = new JLabel();
        final JCheckBox showLegendCheckBox = new JCheckBox("Afficher la lgende",
                graphPanel.getChart().getLegend().isVisible());

        {
            builder.addLabel("Titre :", "1,1");
            builder.add(titleForGraph, "3,1,7,1");
        }

        {
            builder.addLabel(I18nSupport.translate("menus.graph.graphEditor.backgroundColor"), "1,3");
            colorLabel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
            colorLabel.setText(" ");
            colorLabel.setBackground((Color) graphPanel.getChart().getBackgroundPaint());
            colorLabel.setOpaque(true);
            colorLabel.setEnabled(false);
            final JButton edit = new JButton(I18nSupport.translate("menus.graph.graphEditor.edit"));
            edit.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    Color c = JColorChooser.showDialog(GraphEditor.this,
                            I18nSupport.translate("menus.graph.graphEditor.selectColor"),
                            colorLabel.getBackground());
                    if (c != null) {
                        colorLabel.setBackground(c);
                    }
                }
            });
            builder.add(colorLabel, "3,3,5,1");
            builder.add(edit, "9,3");
        }

        final XYPlot xyPlot = graphPanel.getChart().getXYPlot();
        {
            builder.addLabel(I18nSupport.translate("menus.graph.graphEditor.graphColor"), "1,5");
            colorXYPlotLabel.setText(" ");
            colorXYPlotLabel.setOpaque(true);
            colorXYPlotLabel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
            colorXYPlotLabel.setBackground((Color) xyPlot.getBackgroundPaint());
            colorXYPlotLabel.setEnabled(false);
            final JButton edit = new JButton(I18nSupport.translate("menus.graph.graphEditor.edit"));
            edit.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    Color c = JColorChooser.showDialog(GraphEditor.this,
                            I18nSupport.translate("menus.graph.graphEditor.selectColor"),
                            colorXYPlotLabel.getBackground());
                    if (c != null) {
                        colorXYPlotLabel.setBackground(c);
                    }
                }
            });
            builder.add(colorXYPlotLabel, "3,5,5,1");
            builder.add(edit, "9,5");
        }

        {
            builder.addLabel(I18nSupport.translate("menus.graph.graphEditor.gridColor"), "1,7");
            colorGridLabel.setOpaque(true);
            colorGridLabel.setText(" ");
            colorGridLabel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
            colorGridLabel.setBackground((Color) xyPlot.getRangeGridlinePaint());
            colorGridLabel.setEnabled(false);
            final JButton edit = new JButton(I18nSupport.translate("menus.graph.graphEditor.edit"));
            edit.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    Color c = JColorChooser.showDialog(GraphEditor.this,
                            I18nSupport.translate("menus.graph.graphEditor.selectColor"),
                            colorGridLabel.getBackground());
                    if (c != null) {
                        colorGridLabel.setBackground(c);
                    }
                }
            });
            builder.add(colorGridLabel, "3,7,5,1");
            builder.add(edit, "9,7");
        }

        {
            builder.add(showLegendCheckBox, "1,9,9,1");
        }

        mainPanel.add(builder.build(), BorderLayout.CENTER);

        ButtonBarBuilder buttonBarBuilder = new ButtonBarBuilder();

        buttonBarBuilder.addGlue();

        buttonBarBuilder.addButton(new AbstractAction() {
            {
                putValue(NAME, I18nSupport.translate("cancel"));
            }

            @Override
            public void actionPerformed(ActionEvent e) {
                GraphEditor.this.setVisible(false);
            }
        });

        buttonBarBuilder.addButton(new AbstractAction() {

            {
                putValue(NAME, I18nSupport.translate("ok"));
            }

            @Override
            public void actionPerformed(ActionEvent e) {
                if (titleForGraph.getText().isEmpty())
                    graphPanel.getChart().setTitle((String) null);
                else
                    graphPanel.getChart().setTitle(titleForGraph.getText());
                {
                    Color c = colorGridLabel.getBackground();
                    xyPlot.setRangeGridlinePaint(c);
                    xyPlot.setRangeMinorGridlinePaint(c);
                    xyPlot.setDomainGridlinePaint(c);
                    xyPlot.setDomainMinorGridlinePaint(c);
                }
                graphPanel.getChart().setBackgroundPaint(colorLabel.getBackground());
                xyPlot.setBackgroundPaint(colorXYPlotLabel.getBackground());
                graphPanel.getChart().getLegend().setVisible(showLegendCheckBox.isSelected());
                GraphEditor.this.setVisible(false);
            }
        });

        mainPanel.add(buttonBarBuilder.build(), BorderLayout.SOUTH);
    }

    pack();
    Dimension d = this.getPreferredSize();
    this.setSize(new Dimension(d.width + 20, d.height));
    setResizable(false);
}

From source file:org.cds06.speleograph.graph.ValueAxisEditor.java

License:Open Source License

/**
 * {@inheritDoc}//from w w w .ja  v a2 s  . co m
 */
@Override
protected void setup() {
    PanelBuilder builder = new PanelBuilder(getFormLayout(), getPanel());
    CellConstraints cc = new CellConstraints();

    Dimension d = maxModifier.getPreferredSize();
    maxModifier.setPreferredSize(new Dimension(d.width + 50, d.height));
    d = minModifier.getPreferredSize();
    minModifier.setPreferredSize(new Dimension(d.width + 50, d.height));

    {
        builder.add(new JLabel("Titre de l'axe :"));
        final JTextField axisTitleField = new JTextField();
        axisTitleField.setText(axis.getLabel());
        builder.nextColumn(2);
        builder.add(axisTitleField, cc.xyw(3, 1, 5));
        addListenerOnSuccess(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String text = axisTitleField.getText();
                if (text != null && !text.equals(""))
                    axis.setLabel(axisTitleField.getText());
            }
        });
    }

    {
        builder.nextLine(2);
        builder.add(new JLabel("Valeur min. :"));
        builder.nextColumn(2);
        builder.add(lowField);
        addListenerOnSuccess(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    Double value = Double.valueOf(lowField.getText());
                    if (isApply) {
                        axis.setLowerBound(value);
                    } else if (isCancel && oldLowValue != null)
                        axis.setLowerBound(oldLowValue);
                } catch (NumberFormatException e1) {
                    canClose = false;
                    JOptionPane.showMessageDialog(ValueAxisEditor.this.getParent(),
                            "'" + lowField.getText() + "' n'est pas un nombre", "Erreur",
                            JOptionPane.ERROR_MESSAGE);
                }
            }
        });
        builder.nextColumn(2);
        builder.add(new JLabel("+"));
        builder.nextColumn(2);
        builder.add(minModifier);
    }

    {
        builder.nextLine(2);
        builder.add(new JLabel("Valeur max. :"));
        builder.nextColumn(2);
        builder.add(maxField);
        addListenerOnSuccess(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    Double value = Double.valueOf(maxField.getText());
                    if (isApply) {
                        axis.setUpperBound(value);
                    } else if (isCancel && oldHighValue != null)
                        axis.setUpperBound(oldHighValue);
                } catch (NumberFormatException e1) {
                    canClose = false;
                    JOptionPane.showMessageDialog(ValueAxisEditor.this.getParent(),
                            "'" + maxField.getText() + "' n'est pas un nombre", "Erreur",
                            JOptionPane.ERROR_MESSAGE);
                }
            }
        });
        builder.nextColumn(2);
        builder.add(new JLabel("+"));
        builder.nextColumn(2);
        builder.add(maxModifier);
    }

    {
        builder.nextLine(2);
        builder.add(new JLabel("<HTML><strong>Sries associes  l'axe</strong></HTML>"), cc.xyw(1, 7, 3));
        String linkedSeries = "<html><ul>";
        for (Series series : Series.getInstances()) {
            if (series.getAxis().equals(axis))
                linkedSeries += "<li>" + series.toString(true) + "</li>";
        }
        linkedSeries += "</ul></html>";

        builder.add(new JLabel(linkedSeries), cc.xyw(1, 8, 3));
    }

    JPanel buttonPanel = new JPanel();
    ButtonBarBuilder buttonBuilder = new ButtonBarBuilder(buttonPanel);
    buttonBuilder.addGlue();
    {
        buttonBuilder.addButton(new AbstractAction() {

            {
                putValue(NAME, I18nSupport.translate("cancel"));
            }

            @Override
            public void actionPerformed(ActionEvent e) {
                isCancel = true;
                isApply = false;
                canClose = true;
                validateForm();
            }
        });
    }

    {
        buttonBuilder.addButton(new AbstractAction() {

            {
                putValue(NAME, I18nSupport.translate("apply"));
            }

            @Override
            public void actionPerformed(ActionEvent e) {
                isCancel = false;
                isApply = true;
                canClose = false;
                validateForm();
            }
        });
    }

    {
        buttonBuilder.addButton(new AbstractAction() {

            {
                putValue(NAME, I18nSupport.translate("ok"));
            }

            @Override
            public void actionPerformed(ActionEvent e) {
                isCancel = false;
                isApply = true;
                canClose = true;
                validateForm();
            }
        });
    }

    buttonBuilder.build();
    buttonPanel.setVisible(true);
    builder.add(buttonBuilder.getPanel(), cc.xyw(1, 10, 10));

    {
        translateSlider.setToolTipText("Translation des axes");
        translateSlider.addChangeListener(new ChangeListener() {
            @Override
            public void stateChanged(ChangeEvent e) {
                int maxValue = -translateSlider.getValue();
                maxModifier.setText(String.valueOf(maxValue));
                int lowValue = -translateSlider.getValue();
                minModifier.setText(String.valueOf(lowValue));
            }
        });
        builder.add(translateSlider, cc.xywh(9, 1, 1, 8));
    }
    {
        homotSlider.setToolTipText("Homothtie sur les axes");
        homotSlider.addChangeListener(new ChangeListener() {
            @Override
            public void stateChanged(ChangeEvent e) {
                int maxValue = -homotSlider.getValue();
                maxModifier.setText(String.valueOf(maxValue));
                int lowValue = homotSlider.getValue();
                minModifier.setText(String.valueOf(lowValue));
            }
        });
        builder.add(homotSlider, cc.xywh(10, 1, 1, 8));
    }

    builder.build();

    getPanel().setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));

    addListenerOnSuccess(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            if (canClose)
                setVisible(false);
        }
    });
}