List of usage examples for com.jgoodies.forms.builder DefaultFormBuilder DefaultFormBuilder
public DefaultFormBuilder(FormLayout layout, StringResourceAccessor localizer)
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; }