Example usage for com.jgoodies.forms.builder DefaultFormBuilder DefaultFormBuilder

List of usage examples for com.jgoodies.forms.builder DefaultFormBuilder DefaultFormBuilder

Introduction

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

Prototype

public DefaultFormBuilder(FormLayout layout, StringResourceAccessor localizer) 

Source Link

Document

Constructs a DefaultFormBuilder for the given layout and resource bundle.

Usage

From source file:ca.sqlpower.wabit.swingui.chart.ChartPanel.java

License:Open Source License

/**
 * Subroutine of {@link #buildUI()}. Creates the form that appears to the
 * right of the JFreeChart preview.// w w w  .  ja  v  a 2  s  .  c o m
 */
private Component buildChartPrefsPanel() {
    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("70dlu, 3dlu, 90dlu"),
            logger.isDebugEnabled() ? new FormDebugPanel() : new JPanel());

    builder.append("Legend Postion", legendPositionComboBox);
    builder.nextLine();

    builder.append(yaxisNameLabel, yaxisNameField);
    builder.nextLine();

    builder.append(xaxisNameLabel, xaxisNameField);
    builder.nextLine();

    builder.append(xaxisLabelRotationLabel, xaxisLabelRotationSlider);
    builder.nextLine();

    builder.append(this.xAxisAutoLabel, this.xAxisAuto);
    builder.append(this.xAxisMaxLabel, this.xAxisMax);
    builder.append(this.xAxisMinLabel, this.xAxisMin);
    builder.nextLine();

    builder.append(this.yAxisAutoLabel, this.yAxisAuto);
    builder.append(this.yAxisMaxLabel, this.yAxisMax);
    builder.append(this.yAxisMinLabel, this.yAxisMin);
    builder.nextLine();

    builder.append("Gratuitous Animation", gratuitousAnimationCheckbox);

    return builder.getPanel();
}

From source file:ca.sqlpower.wabit.swingui.QueryPanel.java

License:Open Source License

public QueryPanel(WabitSwingSession session, QueryCache cache) {
    logger.debug("Constructing new QueryPanel@" + System.identityHashCode(this));
    this.session = session;
    context = (WabitSwingSessionContext) session.getContext();
    mainSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
    queryCache = cache;//from   w w w .j a v a  2  s  . co  m

    queryCache.setResultSetListener(resultSetListener);
    queryCache.addResultSetProducerListener(rsProducerListener);

    final Action queryPenExecuteButtonAction = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            execute();
        }
    };
    queryPen = new QueryPen(queryPenExecuteButtonAction, queryCache);
    queryPen.setExecuteIcon((ImageIcon) WabitIcons.RUN_ICON_32);
    queryPen.getGlobalWhereText().setText(cache.getGlobalWhereClause());

    exportQueryAction = new ExportWabitObjectAction<QueryCache>(session, queryCache,
            WabitIcons.WABIT_FILE_ICON_16, "Export Query to Wabit file");

    queryUIComponents = new SQLQueryUIComponents(session,
            new SpecificDataSourceCollection<JDBCDataSource>(session.getWorkspace(), JDBCDataSource.class),
            context, mainSplitPane, queryCache);
    queryUIComponents.setRowLimitSpinner(context.getRowLimitSpinner());
    queryUIComponents.setShowSearchOnResults(false);
    queryController = new QueryController(queryCache, queryPen, queryUIComponents.getDatabaseComboBox(),
            queryUIComponents.getQueryArea(), queryPen.getZoomSlider());
    queryPen.setZoom(queryCache.getZoomLevel());
    reportComboBox = queryUIComponents.getDatabaseComboBox();

    cornerPanel = new JPanel();
    DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("pref", "pref, pref, pref"),
            cornerPanel);
    groupingLabel.setFont(new JTableHeader().getFont());

    //Resize grouping and having labels to the height of a combo box to be spaced properly
    //beside the headers in the results table. This is done by a listener as the components
    //aren't realized until they are displayed.
    reportComboBox.addComponentListener(new ComponentAdapter() {
        public void componentResized(ComponentEvent e) {
            groupingLabel.setPreferredSize(new Dimension((int) groupingLabel.getPreferredSize().getWidth(),
                    reportComboBox.getHeight()));
            havingLabel.setPreferredSize(
                    new Dimension((int) havingLabel.getPreferredSize().getWidth(), reportComboBox.getHeight()));
        }
    });
    havingLabel.setFont(new JTableHeader().getFont());
    builder.append(groupingLabel);
    builder.append(havingLabel);
    builder.append(columnNameLabel);

    dragTree = new JTree() {
        public void expandPath(TreePath tp) {
            try {
                if (tp.getLastPathComponent() instanceof SQLObject) {
                    ((SQLObject) tp.getLastPathComponent()).populate();
                }
                super.expandPath(tp);
            } catch (Exception ex) {
                logger.warn("Unexpected exception while expanding path " + tp, ex); //$NON-NLS-1$
            }
        }

        @Override
        public void expandRow(int row) {
            if (getPathForRow(row).getLastPathComponent() instanceof SQLObject) {
                try {
                    ((SQLObject) getPathForRow(row).getLastPathComponent()).populate();
                } catch (SQLObjectException e) {
                    throw new RuntimeException(e);
                }
            }
            super.expandRow(row);
        }
    };
    dragTree.setRootVisible(false);
    rootNode = new CustomSQLObjectRoot();
    reportComboBox.addActionListener(new AbstractAction() {
        public void actionPerformed(ActionEvent event) {
            try {
                for (int i = rootNode.getChildren().size() - 1; i >= 0; i--) {
                    rootNode.removeChild(rootNode.getChildren().get(i));
                }
                if (reportComboBox.getSelectedItem() != null) {
                    // FIXME the session (or session context) should be maintaining a map of data
                    // sources to SQLDatabase instances. Each SQLDatabase instance has its own connection pool! 
                    rootNode.addChild(context.getDatabase((JDBCDataSource) reportComboBox.getSelectedItem()));
                    for (SQLObject child : rootNode.getChildren()) {
                        child.populate();
                    }
                    DBTreeModel tempTreeModel = new DBTreeModel(rootNode, dragTree);
                    dragTree.setModel(tempTreeModel);
                    dragTree.expandRow(0);
                    dragTree.setVisible(true);
                }
            } catch (SQLObjectException e) {
                throw new RuntimeException("Could not add DataSource to rootNode", e);
            } catch (ObjectDependentException e) {
                throw new RuntimeException(e);
            }

        }
    });
    if (session.getWorkspace().getDataSources().size() != 0) {
        if (queryCache.getDatabase() == null) {
            dragTree.setVisible(false);
            List<SPDataSource> dataSources = session.getWorkspace().getConnections();
            List<JDBCDataSource> availableDS = new ArrayList<JDBCDataSource>();
            for (SPDataSource ds : dataSources) {
                if (ds instanceof JDBCDataSource) {
                    availableDS.add((JDBCDataSource) ds);
                }
            }
            final JDBCDataSource startingDataSource;
            if (availableDS.size() > 0) {
                startingDataSource = (JDBCDataSource) availableDS.get(0);
            } else {
                startingDataSource = null;
            }

            SPSwingWorker databaseLazyLoad = new SPSwingWorker(session) {
                public void doStuff() throws Exception {
                    if (startingDataSource != null) {
                        //populate the database
                        context.getDatabase(startingDataSource);
                    }
                }

                public void cleanup() throws Exception {
                    if (reportComboBox.getSelectedItem() == null) {
                        reportComboBox.setSelectedItem(startingDataSource);
                        dragTree.setVisible(true);
                    }
                }
            };
            //populates some data in a separate thread to create an easier workflow
            //when a user creates a new query (bug 2054)
            if (startingDataSource != null) {
                databaseLazyLoad.run();
            }
        } else {
            reportComboBox.setSelectedItem((SPDataSource) queryCache.getDatabase().getDataSource());
            dragTree.setVisible(true);
        }
    } else {
        dragTree.setVisible(false);
    }

    dragTree.setCellRenderer(new DBTreeCellRenderer());
    DragSource ds = new DragSource();
    ds.createDefaultDragGestureRecognizer(dragTree, DnDConstants.ACTION_COPY, new DragGestureListener() {

        public void dragGestureRecognized(DragGestureEvent dge) {

            if (dragTree.getSelectionPaths() == null) {
                return;
            }
            ArrayList<SQLObject> list = new ArrayList<SQLObject>();
            for (TreePath path : dragTree.getSelectionPaths()) {
                Object selectedNode = path.getLastPathComponent();
                if (!(selectedNode instanceof SQLObject)) {
                    throw new IllegalStateException(
                            "DBTrees are not allowed to contain non SQLObjects. This tree contains a "
                                    + selectedNode.getClass());
                }
                list.add((SQLObject) selectedNode);
            }

            Transferable dndTransferable = new SQLObjectSelection(list);
            dge.getDragSource().startDrag(dge, null, dndTransferable, new DragSourceAdapter() {
                // no op 
            });

        }
    });

    queryUIComponents.addTableChangeListener(new TableChangeListener() {
        public void tableRemoved(TableChangeEvent e) {
            if (tableColumnModel != null) {
                Enumeration<TableColumn> enumeration = tableColumnModel.getColumns();
                while (enumeration.hasMoreElements()) {
                    enumeration.nextElement().removePropertyChangeListener(resizingColumnChangeListener);
                }
                e.getChangedTable().getTableHeader()
                        .removeMouseMotionListener(reorderSelectionByHeaderAutoScrollTable);
            }
        }

        public void tableAdded(final TableChangeEvent e) {

            logger.debug("Table added.");
            queryController.unlistenToCellRenderer();
            TableModelSortDecorator sortDecorator = null;
            final JTable table = e.getChangedTable();
            if (table instanceof FancyExportableJTable) {
                FancyExportableJTable fancyTable = (FancyExportableJTable) table;
                sortDecorator = fancyTable.getTableModelSortDecorator();
            }
            ComponentCellRenderer renderer = new ComponentCellRenderer(table, sortDecorator);
            table.getTableHeader().setDefaultRenderer(renderer);

            ListModel lm = new RowListModel(table);
            final JList rowHeader = new JList(lm);
            rowHeader.setFixedCellWidth(groupingLabel.getPreferredSize().width + 2);

            rowHeader.setCellRenderer(new RowHeaderRenderer(table));

            table.addPropertyChangeListener("rowHeight", new PropertyChangeListener() {
                public void propertyChange(PropertyChangeEvent evt) {
                    rowHeader.setFixedCellHeight(table.getRowHeight());
                }
            });

            rowHeader.setFixedCellHeight(table.getRowHeight());

            ((JScrollPane) table.getParent().getParent()).setRowHeaderView(rowHeader);

            ((JScrollPane) table.getParent().getParent()).setCorner(JScrollPane.UPPER_LEFT_CORNER, cornerPanel);
            addGroupingTableHeaders();

            tableColumnModel = e.getChangedTable().getColumnModel();
            Enumeration<TableColumn> enumeration = tableColumnModel.getColumns();
            while (enumeration.hasMoreElements()) {
                enumeration.nextElement().addPropertyChangeListener(resizingColumnChangeListener);
            }
            table.getTableHeader().addMouseMotionListener(reorderSelectionByHeaderAutoScrollTable);

            //TODO: Add the new renderer to result sets on both tabs when a parser exists to go between them easier.
            if (queryPenAndTextTabPane.getSelectedComponent() != queryToolPanel) {
                queryController.listenToCellRenderer(renderer);
            }

            columnNameLabel.setIcon(null);

            searchField.setDocument(queryUIComponents.getSearchDocument());

        }
    });

    buildUI();

    /*
     * Default split pane size is 3/4-1/4 of the screen height or else
     * the results won't be visible and the user won't see them update
     */
    mainSplitPane.setDividerLocation(prefs.getInt(RESULTS_DIVIDER_LOCATON_KEY,
            (int) (session.getContext().getFrame().getHeight() * 3 / 4)));

}

From source file:ch.zhaw.ias.dito.ui.InputPanel.java

License:BSD License

public InputPanel(HelpArea helpArea) {
    super(ScreenEnum.INPUT, null, ScreenEnum.QUESTION);

    FormLayout layout = new FormLayout(
            "max(30dlu; pref), 30dlu, 5dlu, max(150dlu; pref), 5dlu, max(100dlu; pref), 5dlu, max(50dlu; pref), fill:0:g",
            "pref, 2dlu, pref, 2dlu, pref, 10dlu, pref, 2dlu, 20dlu, 2dlu, fill:pref:grow, 2dlu, pref, 2dlu, pref, 2dlu, pref");
    //layout.setRowGroups(new int[][]{{2, 4, 6}}); 
    CellConstraints cc = new CellConstraints();
    DefaultFormBuilder fb = new DefaultFormBuilder(layout, Translation.INSTANCE.getBundle());

    browseButton = new JXButton(Translation.INSTANCE.get("s1.bu.browse"));
    filePath.setName(Translation.INSTANCE.get("s1.lb.file"));

    fb.addI15dSeparator("s1.title.file", cc.xyw(1, 1, 8));
    fb.add(new HelpLabel(helpArea, "s1.lb.file"), cc.xyw(1, 3, 2));
    fb.add(filePath, cc.xyw(4, 3, 3));//from ww  w  .  j  av a2 s .  c om
    fb.add(browseButton, cc.xy(8, 3));
    fb.add(new HelpLabel(helpArea, "s1.lb.separator"), cc.xyw(1, 5, 2));
    //fb.addI15dLabel("s1.lb.separator", cc.xyw(1, 5, 2));
    fb.add(separator, cc.xy(8, 5));

    fb.addI15dSeparator("s1.title.data", cc.xyw(1, 7, 8));

    visualTable = new JXTable(tableModel);
    visualTable.setSortable(false);
    //visualTable.setHorizontalScrollEnabled(true);
    visualTable.getTableHeader().setReorderingAllowed(false);
    visualTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    visualTable.addHighlighter(new ColorHighlighter(new HighlightPredicate() {

        @Override
        public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
            return isColumnSelected(adapter.column) && isRowSelected(adapter.row);
        }
    }, Color.LIGHT_GRAY, Color.BLACK, Color.LIGHT_GRAY, Color.BLACK));
    JScrollPane scrollPane = new JScrollPane(visualTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
            JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    rowSlider.setInverted(true);
    rowSlider.setOrientation(JSlider.VERTICAL);
    columnSlider.addChangeListener(this);
    rowSlider.addChangeListener(this);
    columnSlider.setMinimum(1);
    rowSlider.setMinimum(1);

    columnMinSpinner.addChangeListener(this);
    columnMaxSpinner.addChangeListener(this);
    rowMinSpinner.addChangeListener(this);
    rowMaxSpinner.addChangeListener(this);
    separator.addFocusListener(new FocusAdapter() {
        @Override
        public void focusLost(FocusEvent e) {
            updateTable();
        }
    });
    filePath.addFocusListener(new FocusAdapter() {
        @Override
        public void focusLost(FocusEvent e) {
            updateTable();
        }
    });

    JPanel columnSliderPanel = new JPanel();
    columnSliderPanel.setLayout(new BorderLayout());
    columnMinSpinner.setPreferredSize(new Dimension(50, (int) columnMinSpinner.getPreferredSize().getHeight()));
    columnMaxSpinner.setPreferredSize(new Dimension(50, (int) columnMaxSpinner.getPreferredSize().getHeight()));
    columnSliderPanel.add(columnMinSpinner, BorderLayout.WEST);
    columnSliderPanel.add(columnSlider, BorderLayout.CENTER);
    columnSliderPanel.add(columnMaxSpinner, BorderLayout.EAST);
    fb.add(columnSliderPanel, cc.xyw(4, 9, 6));

    JPanel rowSliderPanel = new JPanel();
    rowSliderPanel.setLayout(new BorderLayout());
    rowSliderPanel.add(rowMinSpinner, BorderLayout.NORTH);
    rowSliderPanel.add(rowSlider, BorderLayout.CENTER);
    rowSliderPanel.add(rowMaxSpinner, BorderLayout.SOUTH);
    fb.add(rowSliderPanel, cc.xyw(2, 11, 1));

    //set preferred size explicitly, otherwise the preferred height is too big and the screen doesn't scale its size in an appropriate way
    scrollPane.setPreferredSize(new Dimension(scrollPane.getWidth(), 100));
    fb.add(scrollPane, cc.xyw(4, 11, 6));
    fb.add(allSurveys, cc.xy(4, 13));
    fb.add(allQuestions, cc.xy(4, 15));
    fb.add(columnTitles, cc.xy(4, 17));

    //validationGroup.add(filePath, Validators.FILE_MUST_BE_FILE, Validators.FILE_MUST_EXIST);
    //validationGroup.add(separator, Validators.REQUIRE_NON_EMPTY_STRING);

    Input i = Config.INSTANCE.getDitoConfig().getInput();
    filePath.setText(i.getFilename());
    separator.setText(Character.toString(i.getSeparator()));
    allQuestions.addChangeListener(this);
    allSurveys.addChangeListener(this);
    columnTitles.addChangeListener(this);
    allQuestions.setSelected(i.isAllQuestions());
    allSurveys.setSelected(i.isAllSurveys());
    columnTitles.setSelected(i.isQuestionTitles());

    browseButton.addActionListener(this);
    this.setLayout(new BorderLayout());
    this.add(fb.getPanel(), BorderLayout.CENTER);
    updateTable();
    columnSlider.setValue(i.getStartQuestion());
    columnSlider.setUpperValue(i.getEndQuestion());
    rowSlider.setValue(i.getStartSurvey());
    rowSlider.setUpperValue(i.getEndSurvey());
}

From source file:ch.zhaw.ias.dito.ui.MethodPanel.java

License:BSD License

public MethodPanel(HelpArea helpArea) {
    super(ScreenEnum.METHOD, ScreenEnum.QUESTION, ScreenEnum.ANALYSIS);
    comboModel = new MethodComboModel(DistanceMethodEnum.get(Coding.REAL));
    methods = new JComboBox(comboModel);

    FormLayout layout = new FormLayout(
            "pref, 5dlu, max(100dlu; pref), 5dlu, max(100dlu; pref), 5dlu, max(100dlu; pref), pref:grow",
            "pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, fill:pref:grow");
    CellConstraints cc = new CellConstraints();
    DefaultFormBuilder fb = new DefaultFormBuilder(layout, Translation.INSTANCE.getBundle());

    fb.addI15dSeparator("s3.lb.method", cc.xyw(1, 1, 5));
    fb.addI15dLabel("s3.lb.coding", cc.xyw(1, 3, 3));
    fb.add(codingGroup, cc.xy(5, 3));//  w  w w .j  av  a2 s  .c  o m
    codingGroup.addActionListener(this);

    fb.addI15dLabel("s3.lb.distance", cc.xyw(1, 5, 3));
    fb.add(methods, cc.xy(5, 5));
    methods.addActionListener(this);

    fb.addI15dLabel("s3.lb.parameter", cc.xyw(1, 7, 3));
    fb.add(parameter, cc.xy(5, 7));

    fb.add(formula, cc.xywh(7, 3, 1, 5));

    fb.add(ownDefinition, cc.xyw(1, 9, 3));
    createDefinition.setText("(a+d)/(a+b+c+d)");
    fb.add(createDefinition, cc.xy(5, 9));

    plotButton.addActionListener(this);
    fb.add(plotButton, cc.xy(5, 11));

    fb.addI15dSeparator("s3.lb.calculation", cc.xyw(1, 13, 5));
    fb.add(randomSample, cc.xyw(1, 15, 5));
    fb.addI15dLabel("s3.lb.sampleSize", cc.xy(3, 17));
    fb.add(sampleSize, cc.xy(5, 17));

    fb.add(parallel, cc.xyw(1, 19, 5));
    fb.addI15dLabel("s3.lb.numberOfThreads", cc.xy(3, 21));
    fb.add(numberOfThreads, cc.xy(5, 21));

    Method m = Config.INSTANCE.getDitoConfig().getMethod();
    codingGroup.setSelectedValue(m.getMethod().getCoding());
    methods.setSelectedItem(DistanceMethodEnum.get(m.getName()));

    randomSample.setSelected(m.isUseRandomSample());
    randomSample.addActionListener(this);
    sampleSize.setText(Integer.toString(m.getSampleSize()));

    parallel.setSelected(m.isParallel());
    parallel.addActionListener(this);
    numberOfThreads.setText(Integer.toString(m.getNumberOfThreads()));

    this.setLayout(new BorderLayout());
    this.add(fb.getPanel(), BorderLayout.CENTER);

    //set distance matrix to null. this way it can be garbage collected
    //the distance matrix is probably quite large, and the calculations will need a lot of memory
    Config.INSTANCE.setDistanceMatrix(null);
    updateEnabling();
}

From source file:ch.zhaw.ias.dito.ui.OutputPanel.java

License:BSD License

public OutputPanel(HelpArea helpArea) {
    super(ScreenEnum.OUTPUT, ScreenEnum.ANALYSIS, null);

    FormLayout layout = new FormLayout(
            "max(50dlu; pref), 5dlu, max(100dlu; pref), 5dlu, max(50dlu; pref), 5dlu, max(100dlu; pref), 5dlu, max(50dlu; pref)",
            "pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref");
    //layout.setRowGroups(new int[][]{{2, 4, 6}}); 
    CellConstraints cc = new CellConstraints();
    DefaultFormBuilder fb = new DefaultFormBuilder(layout, Translation.INSTANCE.getBundle());

    browseButton = new JXButton(Translation.INSTANCE.get("s1.bu.browse"));
    filePath.setName(Translation.INSTANCE.get("s1.lb.file"));

    fb.addI15dSeparator("s5.title.file", cc.xyw(1, 1, 9));
    fb.addI15dLabel("s1.lb.file", cc.xy(1, 3));
    fb.add(filePath, cc.xyw(3, 3, 5));// ww  w.j  a va  2  s. c om
    fb.add(browseButton, cc.xy(9, 3));
    fb.addI15dLabel("s1.lb.separator", cc.xy(1, 5));
    fb.add(separator, cc.xy(7, 5));
    fb.addI15dLabel("s5.lb.precision", cc.xy(1, 7));
    fb.add(precision, cc.xy(7, 7));
    fb.add(saveButton, cc.xy(7, 9));

    //validationGroup.add(filePath, Validators.fFILE_MUST_BE_FILE);
    //validationGroup.add(separator, Validators.REQUIRE_NON_EMPTY_STRING);
    Output o = Config.INSTANCE.getDitoConfig().getOutput();
    filePath.setText(o.getFilename());
    separator.setText(Character.toString(o.getSeparator()));
    precision.setText(Integer.toString(o.getPrecision()));

    browseButton.addActionListener(this);
    saveButton.addActionListener(this);
    this.setLayout(new BorderLayout());
    this.add(fb.getPanel(), BorderLayout.CENTER);
}

From source file:ch.zhaw.ias.dito.ui.util.SingleHistogramPanel.java

License:BSD License

public SingleHistogramPanel(Matrix m) {
    super(new BorderLayout());
    this.m = m;/*www  .j a  v  a 2 s  .co m*/
    this.chart = createChart();
    this.chartPanel = new ChartPanel(this.chart);

    Border border = BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4),
            BorderFactory.createEtchedBorder());
    this.chartPanel.setBorder(border);
    add(this.chartPanel, BorderLayout.CENTER);

    JPanel dashboard = new JPanel(new BorderLayout());
    dashboard.setBorder(BorderFactory.createEmptyBorder(0, 4, 4, 4));

    this.spinner = new JSpinner(new SpinnerNumberModel(0, 0, m.getColCount() - 1, 1));
    spinner.addChangeListener(this);
    this.slider = new JSlider(0, m.getColCount() - 1, 0);
    slider.setPaintLabels(true);

    slider.setMajorTickSpacing(Math.max(50, 10 * Math.round(m.getColCount() / 100)));
    slider.setPaintTicks(true);
    this.slider.addChangeListener(this);

    FormLayout layout = new FormLayout("fill:0:g, max(20dlu; pref)", "top:pref");
    CellConstraints cc = new CellConstraints();
    DefaultFormBuilder fb = new DefaultFormBuilder(layout, Translation.INSTANCE.getBundle());

    fb.add(slider, cc.xy(1, 1));
    fb.add(spinner, cc.xy(2, 1));

    dashboard.add(fb.getPanel(), BorderLayout.CENTER);
    add(dashboard, BorderLayout.SOUTH);
    switchColumn(0);
}

From source file:com.devdaily.justwrite.view.OpenRecentFileDialog.java

License:Open Source License

private void doLayoutForm() {
    FormLayout layout = new FormLayout("fill:pref, 3dlu, fill:80dlu:grow, 3dlu, left:pref",
            "pref, 6dlu, pref, 6dlu, pref");
    JPanel panel = new JPanel();
    DefaultFormBuilder builder = new DefaultFormBuilder(layout, panel);
    builder.setDefaultDialogBorder();/*from   w w  w  . j a v  a  2 s.co m*/
    CellConstraints cc = new CellConstraints();

    builder.addSeparator("Recent Files", cc.xyw(1, 1, 5));
    builder.add(scrollPane, cc.xyw(1, 3, 5));
    builder.add(ButtonBarFactory.buildCenteredBar(cancelButton, okButton),
            cc.xy(3, 5, CellConstraints.CENTER, CellConstraints.DEFAULT));
    //builder.add(okButton, cc.xy(3,5,CellConstraints.CENTER, CellConstraints.DEFAULT));
    this.setContentPane(builder.getPanel());
}

From source file:com.lyndir.lhunath.opal.gui.template.shade.AbstractUi.java

License:Apache License

/**
 * Override this method if you have stuff that needs to be initialized before or after the UI building.<br> <br> Don't forget to call
 * super.buildUi() as well.//from  w w w  .j a  va 2s  .  c om
 */
protected void buildUi() {

    /* Container. */
    contentPane = new JPanel(new BorderLayout());
    contentPane.add(contentPanel = PaintPanel.gradientPanel());
    FormLayout layout = new FormLayout("0dlu, 0dlu, 0dlu:g, 0dlu, r:p", "t:m, f:0dlu:g, 4dlu, m");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout, contentPanel);
    layout.setColumnGroups(new int[][] { { 1, 5 } });
    builder.setDefaultDialogBorder();

    /* Prepare the look and feel. */
    execute(BasicRequest.THEME, false);

    /* Header */
    logo = new JLabel();
    logo.setHorizontalAlignment(SwingConstants.CENTER);
    logo.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) {

            if (e.getButton() == MouseEvent.BUTTON3)
                BaseConfig.dump();
            else
                toggleOverlay();
        }
    });

    titleBar = new JPanel(new FlowLayout(FlowLayout.RIGHT));
    titleBar.setLayout(new BoxLayout(titleBar, BoxLayout.X_AXIS));
    titleBar.setOpaque(false);

    windowedTitleButton = new JButton(UIUtils.getIcon("windowed-sss.png"));
    windowedTitleButton.setActionCommand("windowed");
    windowedTitleButton.addActionListener(this);
    windowedTitleButton.setBorderPainted(false);
    windowedTitleButton.setContentAreaFilled(false);
    fullscreenTitleButton = new JButton(UIUtils.getIcon("fullscreen-sss.png"));
    fullscreenTitleButton.setActionCommand("fullscreen");
    fullscreenTitleButton.addActionListener(this);
    fullscreenTitleButton.setBorderPainted(false);
    fullscreenTitleButton.setContentAreaFilled(false);
    closeTitleButton = new JButton(UIUtils.getIcon("close-sss.png"));
    closeTitleButton.setActionCommand("close");
    closeTitleButton.addActionListener(this);
    closeTitleButton.setBorderPainted(false);
    closeTitleButton.setContentAreaFilled(false);
    titleBar.add(closeTitleButton);

    builder.nextColumn(2);
    builder.append(logo);
    builder.append(titleBar);

    /* Panels */
    window = new SimpleInternalFrame(null, new JToolBar(), null, true);
    window.setSelected(true);
    window.setOpaque(false);

    /* Tabs */
    List<Tab> tabs = appendCustomTabs();
    tabs.addAll(buildTabs());
    for (Plugin plugin : plugins) {
        List<? extends Tab> pluginTabs = plugin.buildTabs();
        if (pluginTabs != null)
            tabs.addAll(pluginTabs);
    }
    for (Tab tab : tabs)
        tab.setAction(addPanelButton(tab));
    if (showingTab == null)
        showingTab = tabs.get(0);
    execute(BasicRequest.PANEL, false);
    builder.append(window, 5);
    builder.nextLine(2);

    progress = new JProgressBar() {

        @Override
        public void repaint(long tm, int x, int y, int width, int height) {

            setOpaque(getValue() != 0 || isIndeterminate());

            if (getParent() != null)
                getParent().repaint(tm, x, y, width, height);
            super.repaint(tm, x, y, width, height);
        }

        @Override
        protected void paintComponent(Graphics g) {

            super.paintComponent(g);

            if (isOpaque()) {
                ((Graphics2D) g).setPaint(getBackground());
                g.drawRect(0, 0, getWidth() - 1, getHeight() - 1);
            }
        }
    };

    progress.setString("");
    progress.setStringPainted(true);
    progress.setBorderPainted(false);
    progress.setBackground(UIUtils.setAlpha(progress.getBackground(), 100));

    for (int level = 0; level <= 5; ++level) {
        messageStack.add(new Stack<String>());
        progressStack.add(0d);
    }

    builder.append(progress, 5);

    /* Frame. */
    execute(BasicRequest.LOGO, false);
    execute(BasicRequest.FULLSCREEN, false);
}

From source file:com.lyndir.lhunath.opal.gui.template.shade.AbstractUi.java

License:Apache License

private JComponent getSettingsPane() {

    FormLayout layout = new FormLayout(
            "20dlu:g(3), r:p, 5dlu, f:100dlu:g(2), 10dlu, r:p, 5dlu, f:100dlu:g(2), 5dlu, l:20dlu:g(4)"); //$NON-NLS-1$
    DefaultFormBuilder builder = new DefaultFormBuilder(layout, new ScrollPanel());
    builder.setBorder(Borders.DLU4_BORDER);
    builder.setLeadingColumnOffset(1);/*from   w w  w . j a v a2  s  .c  o m*/

    builder.appendSeparator(Locale.explain("ui.appearance")); //$NON-NLS-1$

    builder.append(Locale.explain("ui.theme"), new ToolTip(Locale.explain("ui.themeTitle") //$NON-NLS-1$ //$NON-NLS-2$
            + Locale.explain("ui.themeTip"), themesPanel = new JPanel()), 5); //$NON-NLS-1$
    for (MyTheme theme : MyTheme.values())
        themesPanel.add(theme.getButton());
    themesPanel.setOpaque(false);
    builder.nextLine();

    builder.append(Locale.explain("ui.systray"), new ToolTip(Locale.explain("ui.systrayTitle") //$NON-NLS-1$ //$NON-NLS-2$
            + Locale.explain("ui.systrayTip"), //$NON-NLS-1$
            systrayButton = new JCheckBox(Locale.explain("ui.enable")))); //$NON-NLS-1$
    builder.append(Locale.explain("ui.ontop"), new ToolTip(Locale.explain("ui.ontopTitle") //$NON-NLS-1$ //$NON-NLS-2$
            + Locale.explain("ui.ontopTip"), //$NON-NLS-1$
            alwaysOnTop = new JCheckBox(Locale.explain("ui.enable")))); //$NON-NLS-1$
    builder.nextLine();

    builder.append(Locale.explain("ui.startmini"), new ToolTip(Locale.explain("ui.startminiTitle") //$NON-NLS-1$ //$NON-NLS-2$
            + Locale.explain("ui.startminiTip"), //$NON-NLS-1$
            startMini = new JCheckBox(Locale.explain("ui.enable")))); //$NON-NLS-1$
    builder.append(Locale.explain("ui.verbose"), new ToolTip(Locale.explain("ui.verboseTitle") //$NON-NLS-1$ //$NON-NLS-2$
            + Locale.explain("ui.verboseTip"), //$NON-NLS-1$
            verboseLogs = new JCheckBox(Locale.explain("ui.enable")))); //$NON-NLS-1$
    builder.nextLine();

    appendCustomSettings(builder);

    for (Plugin plugin : plugins) {
        builder.appendSeparator(plugin.getName());
        plugin.buildSettings(builder);
    }

    systrayButton.addActionListener(this);
    alwaysOnTop.addActionListener(this);
    startMini.addActionListener(this);
    verboseLogs.addActionListener(this);

    systrayButton.setOpaque(false);
    alwaysOnTop.setOpaque(false);
    startMini.setOpaque(false);
    verboseLogs.setOpaque(false);

    JScrollPane pane = new JScrollPane(builder.getPanel());
    pane.setBorder(Borders.EMPTY_BORDER);
    builder.getPanel().setOpaque(false);
    pane.getViewport().setOpaque(false);
    pane.setOpaque(false);

    return pane;
}

From source file:com.pari.license.ui.LicenseGenDialog.java

License:Open Source License

@Override
public JComponent createContentPanel() {
    JPanel contentPanel = new JPanel();
    contentPanel.setLayout(new BorderLayout());
    contentPanel.setBackground(Color.white);

    seedTextArea = new AutoResizingTextArea(100, 100);
    seedTextArea.addMouseListener(new TextFieldMenu(seedTextArea));
    seedTextArea.setEditable(true);/*w  ww  .j  ava  2s  .c  om*/

    evaluationCheckBox = new JCheckBox("Evaluation License Only");
    evaluationCheckBox.setOpaque(false);
    evaluationCheckBox.setMargin(new Insets(0, 0, 0, 0));

    evaluationCheckBox.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent ae) {
            enableControls();
        }
    });

    allowDeviceBeyondLicenseCheck = new JCheckBox("Allow to add devices beyond Maximum Devices");
    allowDeviceBeyondLicenseCheck.setOpaque(false);
    allowDeviceBeyondLicenseCheck.setMargin(new Insets(0, 0, 0, 0));

    allowDeviceBeyondLicenseCheck.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent ae) {
        }
    });

    JPanel optionsPane = new JPanel();
    optionsPane.setOpaque(false);

    String columnSpecs = "5dlu, pref, 5dlu, 175dlu, 5dlu, 30dlu";
    String rowSpecs = "pref, 4dlu, top:100dlu, 8dlu, pref, 4dlu, pref, 5dlu, pref, 5dlu, pref, 8dlu, pref, 6dlu, pref, 8dlu, pref";
    FormLayout formLayout = new FormLayout(columnSpecs, rowSpecs);
    DefaultFormBuilder builder = new DefaultFormBuilder(formLayout, optionsPane);
    builder.setDefaultDialogBorder();

    evaluationPeriod = new NumericTextField();
    evaluationPeriod.addMouseListener(new TextFieldMenu(evaluationPeriod));

    maxDevices = new NumericTextField();
    maxDevices.addMouseListener(new TextFieldMenu(maxDevices));

    JLabel seedLabel = ControlFactory.createLabelFor("License Seed", true, seedTextArea, 'S');
    JLabel evalPeriodLabel = ControlFactory.createLabelFor("Evaluation Period", false, evaluationPeriod, 'E');
    JLabel maxDevicesLabel = ControlFactory.createLabelFor("Maximum Devices", true, maxDevices, 'M');

    CellConstraints cc = new CellConstraints();

    int rowIndex = 1;
    builder.addSeparator("License Seed Information", cc.xyw(1, rowIndex, 6));

    rowIndex += 2;
    builder.add(seedLabel, cc.xy(2, rowIndex));
    builder.add(new JScrollPane(seedTextArea), cc.xyw(4, rowIndex, 3));

    rowIndex += 2;
    builder.addSeparator("License Details", cc.xyw(1, rowIndex, 6));

    rowIndex += 2;
    builder.add(evaluationCheckBox, cc.xyw(2, rowIndex, 4));

    rowIndex += 2;
    builder.add(evalPeriodLabel, cc.xy(2, rowIndex));
    builder.add(evaluationPeriod, cc.xy(4, rowIndex));
    builder.add(new JLabel("(days)"), cc.xy(6, rowIndex));

    rowIndex += 2;
    builder.add(maxDevicesLabel, cc.xy(2, rowIndex));
    builder.add(maxDevices, cc.xy(4, rowIndex));

    rowIndex += 2;

    builder.add(allowDeviceBeyondLicenseCheck, cc.xyw(2, rowIndex, 4));

    contentPanel.add(optionsPane, BorderLayout.CENTER);

    licensedComponentsList = new CheckBoxList(getAllComponentNames());
    licensedComponentsList.setPreferredSize(new Dimension(350, 175));
    SearchableUtils.installSearchable(licensedComponentsList);

    JPanel panel = new JPanel();
    panel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3),
            BorderFactory.createTitledBorder("Select Licensed Components")));

    panel.setOpaque(false);
    panel.setLayout(new BorderLayout());
    panel.add(new JScrollPane(licensedComponentsList), BorderLayout.CENTER);

    contentPanel.add(panel, BorderLayout.SOUTH);

    contentPanel.setBackground(Color.white);
    setResizable(true);
    enableControls();
    return contentPanel;
}