List of usage examples for com.jgoodies.forms.layout FormLayout FormLayout
public FormLayout(ColumnSpec[] colSpecs)
From source file:br.com.loja.view.swing.PanelEntity.java
public JPanel getPanel(Class<? extends Switchable> entityClass) { DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("")); builder.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); builder.appendColumn("right:pref"); builder.appendColumn("3dlu"); builder.appendColumn("fill:max(pref; 180px)"); builder.appendSeparator(entityClass.getSimpleName()); for (Field f : ReflectionUtil.getAllFields(entityClass)) { if (!isMappable(f)) { continue; }//from www . j a v a 2 s . c o m ComponentFactoryOld factory = new ComponentFactoryOld(f, serviceFactory); Component component = factory.getComponent(); if (component != null) { if (component instanceof JTable) { JScrollPane scrollPane = new JScrollPane(); scrollPane.setName("List " + component.getName()); scrollPane.setPreferredSize(new Dimension(180, 240)); scrollPane.setViewportView(component); builder.nextLine(); builder.append(scrollPane.getName(), scrollPane); } else { builder.nextLine(); builder.append(component.getName(), component); } } } return builder.getPanel(); }
From source file:br.com.loja.view.swing.PanelEntityEditor.java
private JPanel getPanelEntity() throws ServiceException { DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("")); builder.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); builder.appendColumn("right:pref"); builder.appendColumn("3dlu"); builder.appendColumn("fill:max(pref; 180px)"); builder.appendSeparator(entityClass.getSimpleName()); for (Field field : ReflectionUtil.getAllFields(entityClass)) { if (!isMappable(field)) { continue; }/*from w w w. j a v a 2 s . com*/ ComponentFactory factory = new ComponentProducer(field).getComponentFactory(); Component component = factory.getComponent(); if (component != null) { component.setName(field.getName()); component = buildScrollPane(component); builder.nextLine(); builder.append(component.getName(), component); if (Collection.class.isAssignableFrom(field.getType())) { addCardPanel(getPanelEditor(field), field.getName()); } } } JPanel panel = builder.getPanel(); panel.setName(entityClass.getSimpleName()); componentsAttributes = ComponentUtil.getComponents(panel); return panel; }
From source file:brainflow.app.presentation.ColorGradientEditor.java
private void initLayout() { JPanel mainPanel = new JPanel(); FormLayout layout = new FormLayout("l:p:g, 12dlu, l:p, 3dlu, p:g"); DefaultFormBuilder builder = new DefaultFormBuilder(layout, mainPanel); layout.setColumnGroups(new int[][] { { 2, 4 } }); builder.setLineGapSize(Sizes.dluX(8)); builder.appendSeparator("Preview"); colorBar = colorMap.createColorBar(); colorBar.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED)); builder.append(colorBar, 5);//from w ww .ja v a 2s .c o m builder.appendSeparator("Colors"); builder.nextLine(); builder.setDefaultDialogBorder(); builder.append(oneColorButton); builder.append("Color 1:", colorComboOne); builder.nextLine(); builder.append(twoColorButton); builder.append("Color 2: ", colorComboTwo); setLayout(new BorderLayout()); add(builder.getPanel(), BorderLayout.CENTER); }
From source file:ca.sqlpower.architect.swingui.action.ExportDDLAction.java
License:Open Source License
public void actionPerformed(ActionEvent e) { final DDLExportPanel ddlPanel = new DDLExportPanel(getSession()); Callable<Boolean> okCall, cancelCall; okCall = new Callable<Boolean>() { public Boolean call() { if (ddlPanel.applyChanges()) { DDLGenerator ddlg = ddlPanel.getGenerator(); ddlg.setTargetSchema(ddlPanel.getSchemaField().getText()); checkErrorsAndGenerateDDL(ddlg); }/* ww w.j av a 2s .c o m*/ return Boolean.FALSE; } /** * This method will run the known critics over the target database * that we want to generate a DDL script for and display a dialog * containing errors if any are found. The user will then have the * choice to fix their data model or continue on ignoring the * current set of errors. * <p> * This method will also generate the DDL script using the * generateAndDisplayDDL method. */ private void checkErrorsAndGenerateDDL(final DDLGenerator ddlg) { List<Criticism> criticisms = getSession().getWorkspace().getCriticManager() .criticize(ddlg.getClass()); if (criticisms.isEmpty()) { try { generateAndDisplayDDL(ddlPanel, ddlg); } catch (Exception ex) { ASUtils.showExceptionDialog(getSession(), Messages.getString("ExportDDLAction.errorGeneratingDDLScript"), ex); //$NON-NLS-1$ } } else { //build warning dialog final JDialog warningDialog = new JDialog(frame); JPanel mainPanel = new JPanel(); DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("pref:grow"), mainPanel); builder.setDefaultDialogBorder(); JTextArea explanation = new JTextArea(GENDDL_WARNINGS_EXPLANATION, 8, 60); explanation.setLineWrap(true); explanation.setWrapStyleWord(true); explanation.setEditable(false); explanation.setBackground(mainPanel.getBackground()); explanation.setPreferredSize(new Dimension(0, 0)); builder.append(explanation); builder.appendRow("10dlu"); builder.nextLine(); builder.appendRow("fill:pref:grow"); builder.nextLine(); final CriticismBucket bucket = new CriticismBucket(); bucket.updateCriticismsToMatch(criticisms); JTable errorTable = CriticSwingUtil.createCriticTable(getSession(), bucket); builder.append(new JScrollPane(errorTable)); builder.nextLine(); JButton quickFixButton = new JButton( new AbstractAction(Messages.getString("ExportDDLAction.quickFixAllOption")) { //$NON-NLS-1$ public void actionPerformed(ActionEvent e) { warningDialog.dispose(); for (Criticism criticism : bucket.getCriticisms()) { if (!criticism.getFixes().isEmpty()) { for (CriticFix fix : criticism.getFixes()) { if (fix.getFixType().equals(FixType.QUICK_FIX)) { fix.apply(); //applying the first quick fix each time as there is no //decision what to apply by the user for this case break; } } } } checkErrorsAndGenerateDDL(ddlg); } }); JButton ignoreButton = new JButton( new AbstractAction(Messages.getString("ExportDDLAction.ignoreWarningsOption")) { //$NON-NLS-1$ public void actionPerformed(ActionEvent e) { warningDialog.dispose(); try { generateAndDisplayDDL(ddlPanel, ddlg); } catch (Exception ex) { ASUtils.showExceptionDialog(getSession(), Messages.getString("ExportDDLAction.errorGeneratingDDLScript"), ex); //$NON-NLS-1$ } } }); JButton cancelButton = new JButton( new AbstractAction(Messages.getString("ExportDDLAction.cancelOption")) { //$NON-NLS-1$ public void actionPerformed(ActionEvent e) { //just dispose of the dialog and end this. warningDialog.dispose(); } }); JButton recheckButton = new JButton( new AbstractAction(Messages.getString("ExportDDLAction.recheckOption")) { //$NON-NLS-1$ public void actionPerformed(ActionEvent e) { warningDialog.dispose(); checkErrorsAndGenerateDDL(ddlg); } }); ButtonBarBuilder buttonBar = new ButtonBarBuilder(); buttonBar.addGlue(); buttonBar.addGriddedButtons( new JButton[] { quickFixButton, ignoreButton, cancelButton, recheckButton }); builder.append(buttonBar.getPanel()); warningDialog.add(mainPanel); warningDialog.pack(); TableUtils.fitColumnWidths(errorTable, 10); errorTable.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS); warningDialog.setLocationRelativeTo(frame); warningDialog.setVisible(true); } } /** * This method is used for generating and displaying the DDL script * for the current target database using the given DDL generator. */ private void generateAndDisplayDDL(final DDLExportPanel ddlPanel, DDLGenerator ddlg) throws SQLException, SQLObjectException { ddlg.generateDDLScript(getSession(), getSession().getTargetDatabase().getTables()); SQLDatabase ppdb = new SQLDatabase(ddlPanel.getTargetDB()); SQLScriptDialog ssd = new SQLScriptDialog(d, Messages.getString("ExportDDLAction.previewSQLScriptDialogTitle"), "", false, //$NON-NLS-1$ //$NON-NLS-2$ ddlg, ppdb.getDataSource(), true, getSession()); SPSwingWorker scriptWorker = ssd.getExecuteTask(); ConflictFinderProcess cfp = new ConflictFinderProcess(ssd, ppdb, ddlg, ddlg.getDdlStatements(), getSession()); ConflictResolverProcess crp = new ConflictResolverProcess(ssd, cfp, getSession()); cfp.setNextProcess(crp); crp.setNextProcess(scriptWorker); ssd.setExecuteTask(cfp); ssd.setVisible(true); } }; cancelCall = new Callable<Boolean>() { public Boolean call() { ddlPanel.discardChanges(); return Boolean.TRUE; } }; d = DataEntryPanelBuilder.createDataEntryPanelDialog(ddlPanel, frame, Messages.getString("ExportDDLAction.forwardEngineerSQLDialogTitle"), //$NON-NLS-1$ Messages.getString("ExportDDLAction.okOption"), //$NON-NLS-1$ okCall, cancelCall); d.pack(); d.setLocationRelativeTo(frame); d.setVisible(true); }
From source file:ca.sqlpower.architect.swingui.action.ExportHTMLPanel.java
License:Open Source License
public ExportHTMLPanel(ArchitectSwingSession architect) { session = architect;//w w w . j ava 2 s .c om FormLayout layout = new FormLayout("10dlu, 3dlu, pref:grow, 3dlu, pref"); DefaultFormBuilder builder; if (logger.isDebugEnabled()) { builder = new DefaultFormBuilder(layout, new FormDebugPanel()); } else { builder = new DefaultFormBuilder(layout); } ButtonGroup group = new ButtonGroup(); builtin = new JRadioButton(Messages.getString("XSLTSelectionPanel.labelBuiltIn")); external = new JRadioButton(Messages.getString("XSLTSelectionPanel.labelExternal")); group.add(builtin); group.add(external); // place Radio buttons builder.append(builtin, 5); builder.appendRelatedComponentsGapColumn(); if (builtinOptions != null) { builtinOptionPanel = builtinOptions.createPanel(session); builder.append(""); builder.append(builtinOptionPanel, 4); } else { builtinOptionPanel = null; } builder.appendUnrelatedComponentsGapRow(); builder.nextLine(); builder.nextLine(); builder.append(external, 5); // Selection of XSLT file templateFile = new JComboBox(); templateFile.setRenderer(new ComboTooltipRenderer()); templateFile.setEditable(true); builder.append(""); builder.append(templateFile); selectTemplate = new JButton("..."); builder.append(selectTemplate); builder.appendUnrelatedComponentsGapRow(); builder.nextLine(); builder.nextLine(); // Output selection builder.append(new JLabel(Messages.getString("XSLTSelectionPanel.labelOutput")), 5); builder.nextLine(); outputFile = new JTextField(30); builder.append("", outputFile); selectOutput = new JButton("..."); builder.append(selectOutput); builder.appendUnrelatedComponentsGapRow(); builder.nextLine(); builder.nextLine(); // "Statusbar" statusBar = new JLabel(" "); builder.append(statusBar, 5); builder.appendUnrelatedComponentsGapRow(); builder.nextLine(); selectTemplate.addActionListener(componentStateHandler); selectOutput.addActionListener(componentStateHandler); builtin.addActionListener(componentStateHandler); external.addActionListener(componentStateHandler); builtin.setSelected(true); startButton = new JDefaultButton(Messages.getString("XSLTSelectionPanel.startOption")); startButton.addActionListener(componentStateHandler); closeButton = new JButton(Messages.getString("XSLTSelectionPanel.closeOption")); closeButton.addActionListener(componentStateHandler); builder.nextLine(); JPanel bp = ButtonBarFactory.buildRightAlignedBar(startButton, closeButton); builder.append(bp, 5); builder.setDefaultDialogBorder(); panel = builder.getPanel(); restoreSettings(); }
From source file:ca.sqlpower.architect.swingui.action.RefreshAction.java
License:Open Source License
public void actionPerformed(ActionEvent e) { if (dbTree == null) { dbTree = getSession().getDBTree(); }/*from www. ja v a 2s . c o m*/ Set<SQLDatabase> databasesToRefresh = new HashSet<SQLDatabase>(); for (TreePath tp : dbTree.getSelectionPaths()) { SQLObject so = (SQLObject) tp.getLastPathComponent(); SQLDatabase db = SQLPowerUtils.getAncestor(so, SQLDatabase.class); if (db != null && !db.isPlayPenDatabase()) { databasesToRefresh.add(db); } } if (databasesToRefresh.isEmpty()) { JOptionPane.showMessageDialog(dbTree, "Please select a source database to refresh"); return; } final SPSwingWorker worker = new RefreshMonitorableWorker(getSession(), (Window) SwingUtilities.getRoot(dbTree), databasesToRefresh); final Thread thread = new Thread(worker, "Refresh database worker"); JProgressBar progressBar = new JProgressBar(); progressBar.setIndeterminate(true); JLabel messageLabel = new JLabel("Refreshing selected databases."); ProgressWatcher.watchProgress(progressBar, worker, messageLabel); final JDialog dialog = new JDialog((Window) SwingUtilities.getRoot(dbTree), "Refresh"); DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("pref:grow, 5dlu, pref")); builder.setDefaultDialogBorder(); builder.append(messageLabel, 3); builder.nextLine(); builder.append(progressBar, 3); builder.nextLine(); builder.append(new JLabel(""), new JButton(new AbstractAction("Cancel") { public void actionPerformed(ActionEvent e) { worker.kill(); } })); dialog.add(builder.getPanel()); worker.addTaskTerminationListener(new TaskTerminationListener() { public void taskFinished(TaskTerminationEvent e) { dialog.dispose(); } }); dialog.pack(); dialog.setModal(true); dialog.setLocationRelativeTo(getSession().getArchitectFrame()); thread.start(); dialog.setVisible(true); }
From source file:ca.sqlpower.architect.swingui.ArchitectStatusBar.java
License:Open Source License
public ArchitectStatusBar() { DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("fill:pref:grow"), statusBar); builder.append(progressBarPanel);/* ww w.j a v a2 s. co m*/ }
From source file:ca.sqlpower.architect.swingui.ArchitectSwingSessionImpl.java
License:Open Source License
public void refresh() { if (isEnterpriseSession()) { try {//w w w . ja v a 2s . c o m ArchitectSwingSession newSession = ((ArchitectSwingSessionContextImpl) getContext()) .createServerSession(((ArchitectClientSideSession) delegateSession).getProjectLocation(), false); frame.addSession(newSession); JLabel messageLabel = new JLabel("Refreshing"); JProgressBar progressBar = new JProgressBar(); progressBar.setIndeterminate(true); final JDialog dialog = new JDialog(frame, "Refreshing"); DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("pref:grow, 5dlu, pref")); builder.setDefaultDialogBorder(); builder.append(messageLabel, 3); builder.nextLine(); builder.append(progressBar, 3); dialog.add(builder.getPanel()); dialog.pack(); dialog.setLocation(frame.getX() + (frame.getWidth() - dialog.getWidth()) / 2, frame.getY() + (frame.getHeight() - dialog.getHeight()) / 2); dialog.setAlwaysOnTop(true); dialog.setVisible(true); close(); ((ArchitectClientSideSession) ((ArchitectSwingSessionImpl) newSession).getDelegateSession()) .getUpdater().addListener(new AbstractNetworkConflictResolver.UpdateListener() { public boolean updatePerformed(AbstractNetworkConflictResolver updater) { dialog.dispose(); return true; // true indicates that the listener should be removed } public boolean updateException(AbstractNetworkConflictResolver resolver, Throwable t) { return false; } public void preUpdatePerformed(AbstractNetworkConflictResolver resolver) { //do nothing } public void workspaceDeleted() { // do nothing } }); ((ArchitectClientSideSession) ((ArchitectSwingSessionImpl) newSession).getDelegateSession()) .startUpdaterThread(); } catch (Exception e) { throw new RuntimeException("Failed to refresh", e); } } }
From source file:ca.sqlpower.architect.swingui.critic.CriticManagerPanel.java
License:Open Source License
public CriticManagerPanel(ArchitectSwingSession session, CriticSettingsPanelFactory settingsPanelFactory) { this.settingsPanelFactory = settingsPanelFactory; mainPanel = new JPanel(); DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("pref")); criticManager = session.getWorkspace().getCriticManager(); for (CriticGrouping grouping : criticManager.getCriticGroupings()) { CriticGroupingPanel criticGroupingPanel = new CriticGroupingPanel(grouping, this); builder.append(criticGroupingPanel.getPanel()); builder.nextLine();/*from w w w .j a v a 2 s. c o m*/ groupingPanels.add(criticGroupingPanel); } DefaultFormBuilder outerBuilder = new DefaultFormBuilder( new FormLayout("pref:grow", "min(pref;400dlu):grow"), mainPanel); JScrollPane criticsPane = new JScrollPane(builder.getPanel()); criticsPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); outerBuilder.append(criticsPane); outerBuilder.nextLine(); ButtonBarBuilder2 buttonBar = new ButtonBarBuilder2(); buttonBar.addButton(new AbstractAction("Restore Defaults") { public void actionPerformed(ActionEvent e) { if (doApplyChanges()) { criticManager.loadDefaults(); } } }); buttonBar.addButton(new AbstractAction("Set As Defaults") { public void actionPerformed(ActionEvent e) { try { if (doApplyChanges()) { criticManager.saveAsDefaults(); } } catch (BackingStoreException ex) { throw new RuntimeException(ex); } } }); buttonBar.addGlue(); outerBuilder.append(buttonBar.getPanel()); }
From source file:ca.sqlpower.architect.swingui.critic.CriticSettingsPanel.java
License:Open Source License
public CriticSettingsPanel(CriticAndSettings settings) { this.settings = settings; panel = new JPanel(); severityCombo = new JComboBox(Severity.values()); if (settings.getPlatformType().equals(StarterPlatformTypes.CONFIGURATION.getName())) { severityCombo.removeItem(Severity.WARNING); }/*w ww . ja v a2 s.c o m*/ severityCombo.setSelectedItem(settings.getSeverity()); //It would be nice if the layout used a pref:grow style for the first //column but it makes it difficult to set the preferred size correctly. DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("fill:pref:grow, 5dlu, pref"), panel); builder.append(new JLabel(settings.getName())); builder.append(severityCombo); settings.addSPListener(severitySettingListener); }