List of usage examples for com.jgoodies.forms.builder DefaultFormBuilder DefaultFormBuilder
public DefaultFormBuilder(FormLayout layout, StringResourceAccessor localizer)
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. j a v a 2s. co 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); }/* w w w . jav a 2s. c om*/ 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;//from w w w. ja va2s . 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.ArchitectStatusBar.java
License:Open Source License
public ArchitectStatusBar() { DefaultFormBuilder builder = new DefaultFormBuilder(new FormLayout("fill:pref:grow"), statusBar); builder.append(progressBarPanel);/*from www. j av a 2s .c o m*/ }
From source file:ca.sqlpower.architect.swingui.CompareDMPanel.java
License:Open Source License
private void buildUI(SchemaPopulator targetSchemaPop, CatalogPopulator targetCatalogPop, SchemaPopulator sourceSchemaPop, CatalogPopulator sourceCatalogPop) { progressBar = new JProgressBar(); progressBar.setIndeterminate(true);/*w w w. j a v a 2 s.co m*/ progressBar.setVisible(false); sqlTypeDropdown = new JComboBox(DDLUtils.getDDLTypes(session.getDataSources())); sqlTypeDropdown.setRenderer(new DDLGeneratorListCellRenderer()); sqlTypeDropdown.setName("sqlTypeDropDown"); //$NON-NLS-1$ OutputChoiceListener listener = new OutputChoiceListener(sqlTypeDropdown); sqlTypeDropdown.setEnabled(false); sqlTypeDropdown.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { startCompareAction.setEnabled(isStartable()); } }); sqlButton = new JRadioButton(); sqlButton.setName(OUTPUT_SQL); sqlButton.setActionCommand(OUTPUT_SQL); sqlButton.setSelected(false); sqlButton.addActionListener(listener); englishButton = new JRadioButton(); englishButton.setName("englishButton"); //$NON-NLS-1$ englishButton.setActionCommand(OUTPUT_ENGLISH); englishButton.setSelected(true); englishButton.addActionListener(listener); liquibaseButton = new JRadioButton(); liquibaseButton.setName(OUTPUT_LIQUIBASE); //$NON-NLS-1$ liquibaseButton.setActionCommand(OUTPUT_LIQUIBASE); liquibaseButton.setSelected(false); liquibaseButton.addActionListener(listener); showNoChanges = new JCheckBox(); showNoChanges.setName("showNoChanges"); //$NON-NLS-1$ includeIndexes = new JCheckBox(Messages.getString("CompareDMPanel.includeIndexes")); //$NON-NLS-1$ includeIndexes.setName("includeIndexes"); //$NON-NLS-1$ includeIndexes.setSelected(false); // Group the radio buttons. ButtonGroup outputGroup = new ButtonGroup(); outputGroup.add(sqlButton); outputGroup.add(englishButton); outputGroup.add(liquibaseButton); startCompareAction = new StartCompareAction(); startCompareAction.setEnabled(false); swapSourceTargetAction = new SwapSourceTargetAction(); swapSourceTargetAction.setEnabled(true); buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); FormLayout formLayout = new FormLayout("20dlu, 2dlu, pref, 4dlu," + // 1-4 //$NON-NLS-1$ "0:grow, 4dlu, 0:grow, 4dlu," + // 5-8 //$NON-NLS-1$ "0:grow, 4dlu, pref", // 9-11 //$NON-NLS-1$ ""); //$NON-NLS-1$ formLayout.setColumnGroups(new int[][] { { 5, 7, 9, } }); JPanel panel = logger.isDebugEnabled() ? new FormDebugPanel() : new JPanel(); DefaultFormBuilder builder = new DefaultFormBuilder(formLayout, panel); builder.setDefaultDialogBorder(); CellConstraints cc = new CellConstraints(); builder.append(statusComponent, 11); builder.nextLine(); builder.appendSeparator(Messages.getString("CompareDMPanel.olderSeparator")); //$NON-NLS-1$ builder.nextLine(); builder.append(""); // takes up blank space //$NON-NLS-1$ source.buildPartialUI(builder, true, sourceSchemaPop, sourceCatalogPop); builder.appendSeparator(Messages.getString("CompareDMPanel.newerSeparator")); //$NON-NLS-1$ builder.appendRow(builder.getLineGapSpec()); builder.appendRow("pref"); //$NON-NLS-1$ builder.nextLine(2); builder.append(""); //$NON-NLS-1$ target.buildPartialUI(builder, false, targetSchemaPop, targetCatalogPop); ActionListener radioButtonActionEnabler = new ActionListener() { public void actionPerformed(ActionEvent e) { startCompareAction.setEnabled(isStartable()); } }; source.playPenRadio.addActionListener(radioButtonActionEnabler); source.physicalRadio.addActionListener(radioButtonActionEnabler); source.loadRadio.addActionListener(radioButtonActionEnabler); target.playPenRadio.addActionListener(radioButtonActionEnabler); target.physicalRadio.addActionListener(radioButtonActionEnabler); target.loadRadio.addActionListener(radioButtonActionEnabler); JLabel temp; builder.appendSeparator(Messages.getString("CompareDMPanel.outpurFormatSeparator")); //$NON-NLS-1$ builder.appendRow(builder.getLineGapSpec()); builder.appendRow("pref"); //$NON-NLS-1$ builder.nextLine(2); builder.nextColumn(2); builder.append(sqlButton); JPanel ddlTypePanel = new JPanel(new BorderLayout(3, 3)); ddlTypePanel.add(temp = new JLabel(Messages.getString("CompareDMPanel.sqlFor")), BorderLayout.WEST); //$NON-NLS-1$ associate(temp, sqlButton); ddlTypePanel.add(sqlTypeDropdown, BorderLayout.CENTER); // ddl generator // type list ddlTypePanel.add(temp = new JLabel(Messages.getString("CompareDMPanel.makeOlderLookLikeNewer")), //$NON-NLS-1$ BorderLayout.EAST); associate(temp, sqlButton); builder.append(ddlTypePanel, 3); builder.appendRow(builder.getLineGapSpec()); builder.appendRow("pref"); //$NON-NLS-1$ builder.nextLine(2); builder.nextColumn(2); builder.append(liquibaseButton); temp = builder.append(Messages.getString("CompareDMPanel.liqubaseScript")); //$NON-NLS-1$ associate(temp, liquibaseButton); this.lbOptions = new LiquibaseOptionsPanel(); builder.appendRow("pref"); //$NON-NLS-1$ builder.nextLine(1); builder.nextColumn(2); lbOptions.getPanel().setVisible(false); builder.append(lbOptions.getPanel(), 9); builder.appendRow(builder.getLineGapSpec()); builder.appendRow("pref"); //$NON-NLS-1$ builder.nextLine(2); builder.nextColumn(2); builder.append(englishButton); temp = builder.append(Messages.getString("CompareDMPanel.englishDescriptions")); //$NON-NLS-1$ associate(temp, englishButton); builder.appendRow(builder.getLineGapSpec()); builder.appendRow("pref"); //$NON-NLS-1$ builder.nextLine(2); builder.nextColumn(2); builder.append(showNoChanges); temp = builder.append(Messages.getString("CompareDMPanel.suppressSimilarities")); //$NON-NLS-1$ associate(temp, showNoChanges); builder.append(includeIndexes); builder.nextLine(); builder.appendSeparator(Messages.getString("CompareDMPanel.status")); //$NON-NLS-1$ builder.appendRow(builder.getLineGapSpec()); builder.appendRow("pref"); //$NON-NLS-1$ builder.nextLine(2); statusLabel = new JLabel(""); //$NON-NLS-1$ builder.add(statusLabel, cc.xy(5, builder.getRow())); builder.add(progressBar, cc.xyw(7, builder.getRow(), 5)); setLayout(new BorderLayout()); add(builder.getPanel()); setPreferredSize(new Dimension(800, 600)); try { restoreSettingsFromProject(); } catch (SQLObjectException e) { logger.warn("Failed to save user CompareDM preferences!", e); //$NON-NLS-1$ } }
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); }/*from w ww . j av a 2s . c om*/ 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); }
From source file:ca.sqlpower.architect.swingui.KettleJobPanel.java
License:Open Source License
/** * Sets the {@link #panel} to be a new panel that can be used by the user to define * Kettle job properties.// w ww .j a v a 2 s . c om */ private void buildUI() { KettleJob settings = session.getKettleJob(); panel.setLayout(new FormLayout()); panel.setPreferredSize(new Dimension(450, 300)); nameField = new JTextField(settings.getJobName()); databaseComboBox = new JComboBox(); ASUtils.setupTargetDBComboBox(session, databaseComboBox); newDatabaseButton = new JButton(); newDatabaseButton.setText(Messages.getString("KettleJobPanel.propertiesButton")); //$NON-NLS-1$ newDatabaseButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Window parentWindow = SPSUtils.getWindowInHierarchy(panel); ASUtils.showTargetDbcsDialog(parentWindow, session, databaseComboBox); } }); schemaName = new JTextField(settings.getSchemaName()); saveFileRadioButton = new JRadioButton(Messages.getString("KettleJobPanel.saveJobToFileOption"), //$NON-NLS-1$ settings.isSavingToFile()); filePath = new JTextField(settings.getFilePath()); filePath.getDocument().addDocumentListener(new DocumentListener() { public void changedUpdate(DocumentEvent e) { copyFilePath(); } public void insertUpdate(DocumentEvent e) { copyFilePath(); } public void removeUpdate(DocumentEvent e) { copyFilePath(); } private void copyFilePath() { File file = new File(filePath.getText()); if (file != null) { File parentFile = file.getParentFile(); transformationPath.setText(" " //$NON-NLS-1$ + ((parentFile == null || parentFile.getPath() == null) ? "" : parentFile.getPath())); //$NON-NLS-1$ } } }); browseFilePath = new JButton(); browseFilePath.setText(Messages.getString("KettleJobPanel.browseButton")); //$NON-NLS-1$ browseFilePath.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JFileChooser chooser = new JFileChooser(session.getProjectLoader().getFile()); chooser.addChoosableFileFilter(SPSUtils.XML_FILE_FILTER); int response = chooser.showSaveDialog(panel); if (response != JFileChooser.APPROVE_OPTION) { return; } else { File file = chooser.getSelectedFile(); File parentFile = file.getParentFile(); filePath.setText(file.getPath()); if (parentFile != null) { transformationPath.setText(" " + parentFile.getPath()); //$NON-NLS-1$ } } } }); File parentFile = new File(settings.getFilePath()).getParentFile(); if (settings == null || parentFile == null || parentFile.getPath() == null) { transformationPath = new JLabel(""); //$NON-NLS-1$ } else { transformationPath = new JLabel(" " + parentFile.getPath()); //$NON-NLS-1$ } saveReposRadioButton = new JRadioButton(Messages.getString("KettleJobPanel.saveJobToRepositoryOption"), //$NON-NLS-1$ !settings.isSavingToFile()); Object[] connectionArray = session.getContext().getConnections().toArray(); reposDB = new JComboBox(connectionArray); if (connectionArray.length > 0) { reposDB.setSelectedIndex(0); } reposPropertiesButton = new JButton(); reposPropertiesButton.setText(Messages.getString("KettleJobPanel.propertiesButton")); //$NON-NLS-1$ reposPropertiesButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Window parentWindow = SPSUtils.getWindowInHierarchy(panel); ASUtils.showDbcsDialog(parentWindow, (JDBCDataSource) reposDB.getSelectedItem(), null); } }); ButtonGroup saveByButtonGroup = new ButtonGroup(); saveByButtonGroup.add(saveFileRadioButton); saveByButtonGroup.add(saveReposRadioButton); defaultJoinType = new JComboBox(); for (int joinType = 0; joinType < MergeJoinMeta.join_types.length; joinType++) { defaultJoinType.addItem(MergeJoinMeta.join_types[joinType]); } defaultJoinType.setSelectedIndex(settings.getKettleJoinType()); FormLayout formLayout = new FormLayout("10dlu, 2dlu, pref, 4dlu," + //1-4 //$NON-NLS-1$ "0:grow, 4dlu, pref", //5-7 //$NON-NLS-1$ ""); //$NON-NLS-1$ DefaultFormBuilder builder = new DefaultFormBuilder(formLayout, panel); builder.nextColumn(2); builder.append(Messages.getString("KettleJobPanel.jobNameLabel")); //$NON-NLS-1$ builder.append(nameField, 3); builder.nextLine(); builder.append(""); //$NON-NLS-1$ builder.append(Messages.getString("KettleJobPanel.targetDatabaseLabel")); //$NON-NLS-1$ builder.append(databaseComboBox); builder.append(newDatabaseButton); builder.nextLine(); builder.append(""); //$NON-NLS-1$ builder.append(Messages.getString("KettleJobPanel.schemaNameLabel")); //$NON-NLS-1$ builder.append(schemaName, 3); builder.nextLine(); builder.append(""); //$NON-NLS-1$ builder.append(Messages.getString("KettleJobPanel.defaultJoinTypeLabel")); //$NON-NLS-1$ builder.append(defaultJoinType); builder.nextLine(); builder.append(""); //$NON-NLS-1$ builder.append(saveFileRadioButton, 3); builder.nextLine(); builder.append(""); //$NON-NLS-1$ builder.append(Messages.getString("KettleJobPanel.pathLabel")); //$NON-NLS-1$ builder.append(filePath); builder.append(browseFilePath); builder.nextLine(); builder.append(""); //$NON-NLS-1$ builder.append(""); //$NON-NLS-1$ JLabel transPathLabel = new JLabel(Messages.getString("KettleJobPanel.transfomationsPathLabel")); //$NON-NLS-1$ builder.append(transPathLabel, 3); builder.nextLine(); builder.append(""); //$NON-NLS-1$ builder.append(""); //$NON-NLS-1$ builder.append(transformationPath, 3); builder.nextLine(); builder.append(""); //$NON-NLS-1$ builder.append(saveReposRadioButton, 3); builder.nextLine(); builder.append(""); //$NON-NLS-1$ builder.append(Messages.getString("KettleJobPanel.repositoryLabel")); //$NON-NLS-1$ builder.append(reposDB); builder.append(reposPropertiesButton); builder.nextLine(); builder.append(""); //$NON-NLS-1$ //TODO use CompareDM to check if the target database and the playpen are the same JLabel check = new JLabel(Messages.getString("KettleJobPanel.checkTargetSameAsPlaypenWarning")); //$NON-NLS-1$ builder.append(check, 5); }
From source file:ca.sqlpower.architect.swingui.olap.JoinEntryPanel.java
License:Open Source License
private void buildUI() { DefaultFormBuilder builder = new DefaultFormBuilder( new FormLayout("fill:max(500dlu;pref):grow", "pref, fill:max(300dlu;pref):grow"), panel); JToolBar toolbar = new JToolBar(); toolbar.add(pen.getDeleteButton());//from ww w . jav a 2s.c om toolbar.add(pen.getCreateJoinButton()); toolbar.addSeparator(); toolbar.add(pen.getZoomSliderContainer()); builder.append(toolbar); builder.nextLine(); JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); splitPane.add(pen.getScrollPane(), JSplitPane.LEFT); SQLObjectRoot root = new SQLObjectRoot(); TreeModel treeModel; DBTree tree; try { root.addChild(db); tree = new DBTree(session); treeModel = new DBTreeModel(root, tree); } catch (SQLObjectException e) { throw new RuntimeException(e); } tree.setModel(treeModel); tree.setPopupMenuEnabled(false); JPanel treePanel = new JPanel(new BorderLayout()); treePanel.add(new JLabel(db.getName()), BorderLayout.NORTH); treePanel.add(new JScrollPane(tree)); splitPane.add(treePanel, JSplitPane.RIGHT); splitPane.setResizeWeight(0.95); builder.append(splitPane); }
From source file:ca.sqlpower.architect.swingui.ProfileResultsViewer.java
License:Open Source License
/** * Creates but does not show a new profile result viewer dialog. *///from w ww .j a v a 2s .c o m public ProfileResultsViewer(ProfileManager pm) { this.profileManager = pm; this.results = new ArrayList<TableProfileResult>(); this.frame = new JFrame(Messages.getString("ProfileResultsViewer.frameTitle")); //$NON-NLS-1$ frame.setIconImage(ASUtils.getFrameIconImage()); frame.addWindowListener(new WindowAdapter() { public void windowClosed(WindowEvent e) { tm.cleanup(); profileManager.removeProfileChangeListener(profileChangeListener); } }); // The UI for this window is shown in three tabs. Each tab is defined in // its own block, both for readability, and to prevent too much // interdependency between them. JTabbedPane tabPane = new JTabbedPane(); tm = new ProfileTableModel(profileManager); profileManager.addProfileChangeListener(profileChangeListener); // This listener monitors for double clicks in the table view tab, and // responds by showing the appropriate column in the column view tab. ProfilePanelMouseListener profilePanelMouseListener = new ProfilePanelMouseListener(); // These listeners keep the two table selectors (one on the graph tab, // and one on the table view tab) in sync ComboBoxSynchronizationListener graphPanelListener = new ComboBoxSynchronizationListener(); ComboBoxSynchronizationListener tableViewListener = new ComboBoxSynchronizationListener(); // The first tab is the column specific tab. It contains a ProfilePanel, // which contains a ProfileGraphPanel, which displays the column // information and pie chart. { JPanel profilePanel = new JPanel(new BorderLayout()); final ProfilePanel p = new ProfilePanel(tm, profileManager); p.setTabPane(tabPane); p.setTableModel(tm); profilePanel.add(p, BorderLayout.CENTER); ButtonBarBuilder2 profileButtons = new ButtonBarBuilder2(); profileButtons.addGlue(); profileButtons.addFixed(new JButton(closeAction)); profilePanel.add(profileButtons.getPanel(), BorderLayout.SOUTH); tabPane.addTab(Messages.getString("ProfileResultsViewer.graphViewTab"), profilePanel); //$NON-NLS-1$ profilePanelMouseListener.setProfilePanel(p); p.getTableSelector().addActionListener(graphPanelListener); tableViewListener.setTarget(p.getTableSelector()); frame.addWindowListener(new WindowListener() { @Override public void windowOpened(WindowEvent e) { } @Override public void windowIconified(WindowEvent e) { } @Override public void windowDeiconified(WindowEvent e) { } @Override public void windowDeactivated(WindowEvent e) { } @Override public void windowClosing(WindowEvent e) { } @Override public void windowClosed(WindowEvent e) { p.close(); if (tableNotesFieldListener != null) { tableNotesFieldListener.cancel(); } } @Override public void windowActivated(WindowEvent e) { } }); } // This tab displays a table that shows data for all columns from the // selected table, or all tables. { TableModelSearchDecorator searchDecorator = new TableModelSearchDecorator(tm); final TableFilterDecorator filterTableModel = new TableFilterDecorator(searchDecorator); TableModelSortDecorator tableModelSortDecorator = new TableModelSortDecorator(filterTableModel); final ProfileJTable viewTable = new ProfileJTable(tableModelSortDecorator); searchDecorator.setTableTextConverter(viewTable); TableModelColumnAutofit columnAutoFit = new TableModelColumnAutofit(tableModelSortDecorator, viewTable); JTableHeader tableHeader = viewTable.getTableHeader(); tableModelSortDecorator.setTableHeader(tableHeader); columnAutoFit.setTableHeader(tableHeader); viewTable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); profilePanelMouseListener.setTabPane(tabPane); viewTable.addMouseListener(profilePanelMouseListener); viewTable.getModel().addTableModelListener(new TableModelListener() { public void tableChanged(TableModelEvent e) { TableUtils.fitColumnWidths(viewTable, 2); } }); JScrollPane editorScrollPane = new JScrollPane(viewTable); editorScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); editorScrollPane.setPreferredSize(new Dimension(800, 600)); editorScrollPane.setMinimumSize(new Dimension(10, 10)); JPanel tableViewPane = new JPanel(new BorderLayout()); final JTextArea notesField; if (profileManager.getWorkspaceContainer() instanceof ArchitectSession && ((ArchitectSession) profileManager.getWorkspaceContainer()).isEnterpriseSession()) { notesField = new JTextArea(); notesField.setEnabled(false); // Kind of a hack, but the default selection is all tables, so this shoudn't be enabled notesField.setText("Select a Table"); JScrollPane notesScroll = new JScrollPane(notesField); notesScroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); notesScroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); notesScroll.setMinimumSize(new Dimension(0, 50)); JPanel notesPanel = new JPanel(new BorderLayout()); notesPanel.add(new JLabel("Table Profile Notes:"), BorderLayout.NORTH); notesPanel.add(notesScroll, BorderLayout.CENTER); JSplitPane tableViewSplit = new JSplitPane(JSplitPane.VERTICAL_SPLIT); tableViewSplit.setTopComponent(editorScrollPane); tableViewSplit.setBottomComponent(notesPanel); tableViewPane.add(tableViewSplit, BorderLayout.CENTER); } else { tableViewPane.add(editorScrollPane); notesField = null; } JPanel searchPanel = new JPanel(); { FormLayout layout = new FormLayout( "4dlu, pref, 4dlu, pref, 4dlu, pref:grow, 4dlu, pref, 4dlu, pref, 4dlu", "pref"); DefaultFormBuilder builder = new DefaultFormBuilder(layout, searchPanel); CellConstraints cc = new CellConstraints(); JLabel tableLabel = new JLabel("Table:"); tableSelector = new JComboBox(); tableSelector.setRenderer(new DefaultListCellRenderer() { @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { TableProfileResult tpr = (TableProfileResult) value; StringBuffer buf = new StringBuffer(); if (tpr != null) { buf.append(tpr.getProfiledObject().getName()); buf.append(" ("); DateFormat df = DateFormat.getDateTimeInstance(); buf.append(df.format(new Date(tpr.getCreateStartTime()))); buf.append(")"); } else { buf.append("All"); } return super.getListCellRendererComponent(list, buf.toString(), index, isSelected, cellHasFocus); } }); tableSelector.addActionListener(new ActionListener() { private AbstractSPListener tableNotesListener; public void actionPerformed(ActionEvent e) { final TableProfileResult tpr = (TableProfileResult) tableSelector.getSelectedItem(); filterTableModel.setFilter(tpr); if (notesField != null) { if (tableNotesFieldListener != null) { notesField.getDocument().removeDocumentListener(tableNotesFieldListener); tableNotesFieldListener.cancel(); } if (currentTable != null) { currentTable.removeSPListener(tableNotesListener); } currentTable = tpr; if (tpr != null) { notesField.setText(tpr.getNotes()); tableNotesListener = new AbstractSPListener() { @Override public void propertyChanged(PropertyChangeEvent evt) { if ("notes".equals(evt.getPropertyName())) { if (!evt.getNewValue().equals(notesField.getText())) { notesField.setText((String) evt.getNewValue()); } } } }; tpr.addSPListener(tableNotesListener); tableNotesFieldListener = new TimedDocumentListener( tpr.getProfiledObject().getName(), 2500) { @Override public void textChanged() { final String notesText = notesField.getText(); profileManager.getRunnableDispatcher().runInForeground(new Runnable() { public void run() { if (!tpr.getNotes().equals(notesText)) { tpr.setNotes(notesText); } } }); } }; notesField.setEnabled(true); } else { notesField.setEnabled(false); notesField.setText("Select a Table"); tableNotesFieldListener = null; } if (tableNotesFieldListener != null) { notesField.getDocument().addDocumentListener(tableNotesFieldListener); } } } }); tableSelector.addActionListener(tableViewListener); graphPanelListener.setTarget(tableSelector); JLabel searchLabel = new JLabel(Messages.getString("ProfileResultsViewer.search")); //$NON-NLS-1$ JTextField searchField = new JTextField(searchDecorator.getDoc(), "", 25); //$NON-NLS-1$ searchField.setEditable(true); builder.add(tableLabel, cc.xy(2, 1)); builder.add(tableSelector, cc.xy(4, 1)); builder.add(searchLabel, cc.xy(8, 1)); builder.add(searchField, cc.xy(10, 1)); } tableViewPane.add(searchPanel, BorderLayout.NORTH); ButtonBarBuilder2 tableButtons = new ButtonBarBuilder2(); tableButtons.addGlue(); tableButtons.addFixed( new JButton(new SaveProfileAction(frame, Messages.getString("ProfileResultsViewer.PDFExport"), viewTable, SaveProfileAction.SaveableFileType.PDF))); tableButtons.addFixed( new JButton(new SaveProfileAction(frame, Messages.getString("ProfileResultsViewer.CSVExport"), viewTable, SaveProfileAction.SaveableFileType.CSV))); tableButtons.addFixed( new JButton(new SaveProfileAction(frame, Messages.getString("ProfileResultsViewer.HTMLExport"), viewTable, SaveProfileAction.SaveableFileType.HTML))); tableButtons.addFixed(new JButton(closeAction)); tableViewPane.add(tableButtons.getPanel(), BorderLayout.SOUTH); tabPane.addTab(Messages.getString("ProfileResultsViewer.tableViewTab"), tableViewPane); //$NON-NLS-1$ } // This tab displays a table with top value information from all columns. { final MultiFreqValueCountTableModel columnTableModel = new MultiFreqValueCountTableModel(tm); JTextField columnSearchField = new JTextField("", 25); //$NON-NLS-1$ final FancyExportableJTable columnTable = new FancyExportableJTable(columnTableModel, columnSearchField.getDocument()); columnTable.getTableModelSortDecorator().setColumnComparator(columnTableModel.getColumnClass(2), new ColumnValueCount.ColumnValueComparator()); columnTableModel.addTableModelListener(new TableModelListener() { public void tableChanged(TableModelEvent e) { TableUtils.fitColumnWidths(columnTable, 15); } }); columnTable.setColumnFormatter(4, new PercentTableCellRenderer(false).getFormat()); columnTable.setColumnFormatter(5, new DateTableCellRenderer().getFormat()); for (int i = 0; i < columnTableModel.getColumnCount(); i++) { columnTable.getColumnModel().getColumn(i).setCellRenderer(columnTableModel.getCellRenderer(i)); } JPanel columnViewerPanel = new JPanel(new BorderLayout()); columnViewerPanel.add(new JScrollPane(columnTable), BorderLayout.CENTER); JPanel columnSearchPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); columnSearchPanel.add(new JLabel(Messages.getString("ProfileResultsViewer.search"))); //$NON-NLS-1$ columnSearchPanel.add(columnSearchField); columnViewerPanel.add(columnSearchPanel, BorderLayout.NORTH); ButtonBarBuilder2 columnButtonBar = new ButtonBarBuilder2(); columnButtonBar.addGlue(); final JButton csvExportButton = new JButton(columnTable.getExportCSVAction()); csvExportButton.setText(Messages.getString("ProfileResultsViewer.CSVExport")); columnButtonBar.addFixed(csvExportButton); final JButton htmlExportButton = new JButton(columnTable.getExportHTMLAction()); htmlExportButton.setText(Messages.getString("ProfileResultsViewer.HTMLExport")); columnButtonBar.addFixed(htmlExportButton); columnButtonBar.addFixed(new JButton(closeAction)); columnViewerPanel.add(columnButtonBar.getPanel(), BorderLayout.SOUTH); tabPane.addTab(Messages.getString("ProfileResultsViewer.columnViewTab"), columnViewerPanel); } frame.add(tabPane, BorderLayout.CENTER); frame.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); frame.pack(); frame.setLocationRelativeTo(null); SPSUtils.makeJDialogCancellable(frame, null); }
From source file:ca.sqlpower.architect.swingui.ProjectSettingsPanel.java
License:Open Source License
public void setup() { com.jgoodies.forms.layout.FormLayout layout = new com.jgoodies.forms.layout.FormLayout("pref,4dlu,pref"); //$NON-NLS-1$ DefaultFormBuilder fb = new DefaultFormBuilder(layout, new JPanel()); setLayout(layout);/*from ww w . j av a 2 s . co m*/ fb.append(Messages.getString("ProjectSettingsPanel.snapshotSourceDbOption"), //$NON-NLS-1$ saveEntireSource = new JCheckBox()); fb.nextLine(); fb.appendUnrelatedComponentsGapRow(); fb.nextLine(); fb.append(Messages.getString("ProjectSettingsPanel.numCommonProfileValues"), //$NON-NLS-1$ numberOfFreqValues = new JTextField("", 6)); fb.nextLine(); fb.appendUnrelatedComponentsGapRow(); fb.nextLine(); fb.append(Messages.getString("ProjectSettingsPanel.profileMode"), //$NON-NLS-1$ profileMode = new JComboBox(session.getProfileManager().getProfileCreators().toArray())); fb.nextLine(); fb.appendUnrelatedComponentsGapRow(); fb.nextLine(); fb.append(new JLabel(Messages.getString("ProjectSettingsPanel.relationshipLineStyle"))); //$NON-NLS-1$ fb.append(rectilinearRelationships = new JRadioButton( Messages.getString("ProjectSettingsPanel.rectilinearLineOption"))); //$NON-NLS-1$ fb.nextLine(); fb.append("", directRelationships = new JRadioButton( //$NON-NLS-1$ Messages.getString("ProjectSettingsPanel.directLineOption"))); ButtonGroup lineStyleGroup = new ButtonGroup(); lineStyleGroup.add(rectilinearRelationships); lineStyleGroup.add(directRelationships); fb.nextLine(); fb.appendUnrelatedComponentsGapRow(); fb.nextLine(); fb.append(new JLabel(Messages.getString("ProjectSettingsPanel.displayPhysicalOrLogical"))); //$NON-NLS-1$ fb.append(logicalNames = new JRadioButton(Messages.getString("ProjectSettingsPanel.displayLogicalNames"))); //$NON-NLS-1$ fb.nextLine(); fb.append("", //$NON-NLS-1$ physicalNames = new JRadioButton(Messages.getString("ProjectSettingsPanel.displayPhysicalNames"))); ButtonGroup nameDisplay = new ButtonGroup(); nameDisplay.add(logicalNames); nameDisplay.add(physicalNames); fb.nextLine(); fb.appendUnrelatedComponentsGapRow(); fb.nextLine(); fb.append(new JLabel(Messages.getString("ProjectSettingsPanel.visibilityOfRelationshipLabel"))); //$NON-NLS-1$ fb.append(displayRelationshipLabel = new JRadioButton( Messages.getString("ProjectSettingsPanel.displayRelationshipLabel"))); //$NON-NLS-1$ fb.nextLine(); fb.append("", hideRelationshipLabel = new JRadioButton( //$NON-NLS-1$ Messages.getString("ProjectSettingsPanel.hideRelationshipLabel"))); ButtonGroup DisplayRelationshipLabel = new ButtonGroup(); DisplayRelationshipLabel.add(displayRelationshipLabel); DisplayRelationshipLabel.add(hideRelationshipLabel); fb.nextLine(); fb.appendUnrelatedComponentsGapRow(); fb.nextLine(); fb.append(showAll = new JRadioButton(Messages.getString("ProjectSettingsPanel.showAll"))); //$NON-NLS-1$ fb.append(showPkTag = new JCheckBox(Messages.getString("ProjectSettingsPanel.showPKTags"))); //$NON-NLS-1$ fb.nextLine(); fb.append(showPkFkUniqueIndexed = new JRadioButton( Messages.getString("ProjectSettingsPanel.showPKFKUniqueIndexed"))); //$NON-NLS-1$ fb.append(showFkTag = new JCheckBox(Messages.getString("ProjectSettingsPanel.showFKTags"))); //$NON-NLS-1$ fb.nextLine(); fb.append(showPkFkUnique = new JRadioButton(Messages.getString("ProjectSettingsPanel.showPKFKUnique"))); //$NON-NLS-1$ fb.append(showAkTag = new JCheckBox(Messages.getString("ProjectSettingsPanel.showAKTags"))); //$NON-NLS-1$ fb.nextLine(); fb.append(showPkFk = new JRadioButton(Messages.getString("ProjectSettingsPanel.showPKFK"))); //$NON-NLS-1$ fb.nextLine(); fb.append(showPk = new JRadioButton(Messages.getString("ProjectSettingsPanel.showPK"))); //$NON-NLS-1$ fb.nextLine(); ButtonGroup column_show_settings = new ButtonGroup(); column_show_settings.add(showAll); column_show_settings.add(showPkFkUniqueIndexed); column_show_settings.add(showPkFkUnique); column_show_settings.add(showPkFk); column_show_settings.add(showPk); fb.setDefaultDialogBorder(); this.panel = fb.getPanel(); }