List of usage examples for com.jgoodies.forms.builder DefaultFormBuilder appendSeparator
public JComponent appendSeparator(String text)
From source file:be.ac.ua.comp.scarletnebula.gui.windows.AddFirewallRuleWindow.java
License:Open Source License
public AddFirewallRuleWindow(final JDialog parent, final CloudProvider provider, final Firewall firewall) { super(parent, "Add Rule", true); this.firewall = firewall; setLayout(new BorderLayout()); setSize(400, 250);// w w w.j a v a 2 s.c o m setLocationRelativeTo(null); setLocationByPlatform(true); final FormLayout layout = new FormLayout("right:max(40dlu;p), 4dlu, min(50dlu;p):grow", ""); // add rows dynamically final DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setDefaultDialogBorder(); builder.appendSeparator("New Rule"); portRangeField.setInputVerifier(new PortRangeInputVerifier(portRangeField)); builder.append("Port range", portRangeField); builder.append("Protocol", protocolDropdown); builder.append("IP", ipField); final JPanel mainPanel = new JPanel(new BorderLayout()); mainPanel.add(builder.getPanel(), BorderLayout.CENTER); final JLabel bottomLabel = new JLabel( "<html><font size=\"6pt\" color=\"#657383\">Note: Use the IP address 0.0.0.0/0 to allow " + "traffic from and to everyone. </font></html>"); bottomLabel.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10)); mainPanel.add(bottomLabel, BorderLayout.PAGE_END); add(mainPanel, BorderLayout.CENTER); final JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.LINE_AXIS)); buttonPanel.add(Box.createHorizontalGlue()); final JButton cancelButton = ButtonFactory.createCancelButton(); cancelButton.addActionListener(new CancelActionListener()); buttonPanel.add(cancelButton); buttonPanel.add(Box.createHorizontalStrut(5)); final JButton okButton = ButtonFactory.createOkButton(); okButton.addActionListener(new OkActionListener()); buttonPanel.add(okButton); buttonPanel.add(Box.createHorizontalStrut(10)); buttonPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0)); add(buttonPanel, BorderLayout.PAGE_END); }
From source file:be.ac.ua.comp.scarletnebula.gui.windows.ServerPropertiesWindow.java
License:Open Source License
private void createOverviewPanel(final Collection<Server> servers) { overviewTab.setLayout(new BorderLayout()); final FormLayout layout = new FormLayout("right:max(40dlu;p), 4dlu, min(50dlu;p):grow, 7dlu, " + "right:max(40dlu;p), 4dlu, min(50dlu;p):grow", ""); // add rows dynamically final DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setDefaultDialogBorder();//from w ww .ja va 2 s . co m builder.appendSeparator("General Information"); Component servernameComponent = null; Component servertagComponent = null; Component sshLoginMethodComponent = null; Component providerComponent = null; Component vncComponent = null; Component statisticsCommandComponent = null; if (servers.size() == 1) { final Server server = servers.iterator().next(); servernameComponent = getSingleServerServerNameComponent(server); servertagComponent = getSingleServerTagComponent(server); sshLoginMethodComponent = getSingleServerSshLoginMethodComponent(server); providerComponent = getSingleProviderComponent(server); vncComponent = getSingleVNCComponent(server); statisticsCommandComponent = getSingleStatisticsCommandComponent(server); } else { servernameComponent = getMultipleServerServerNameComponent(servers); servertagComponent = getMultipleServerTagComponent(servers); sshLoginMethodComponent = new JLabel("..."); providerComponent = getMultipleServersProviderComponent(servers); vncComponent = new JLabel("..."); statisticsCommandComponent = new JLabel("..."); } builder.append("Name", servernameComponent); builder.append("Tags", servertagComponent); builder.nextLine(); builder.append("SSH Login", sshLoginMethodComponent); builder.append("Statistics Command", statisticsCommandComponent); builder.nextLine(); builder.append("Provider", providerComponent); builder.append("VNC Password", vncComponent); builder.nextLine(); builder.append("Architecture", architectureLabel); builder.append("Platform", platformLabel); builder.nextLine(); builder.append("DNS Address", dnsLabel); builder.append("IP Address", ipLabel); builder.nextLine(); builder.append("Status", statusLabel); builder.nextLine(); builder.appendSeparator("Cloud Specific Information"); builder.append("Name", unfriendlyNameLabel); builder.append("Size", sizeLabel); builder.nextLine(); builder.append("Image", imageLabel); builder.nextLine(); final JScrollPane bodyScrollPane = new JScrollPane(builder.getPanel()); bodyScrollPane.setBorder(null); overviewTab.add(bodyScrollPane); }
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 w w w . 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; }/*w w w . j av a 2s .c o m*/ 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 ww w . j av a2 s .com 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:bzh.plealog.bioinfo.ui.filter.BFilterEditor.java
License:Open Source License
private void createGUI() { DefaultFormBuilder builder; FormLayout layout;//from w w w .jav a2 s. c o m JScrollPane scroller; JPanel top, expr, exprMain, rulesContainer; layout = new FormLayout("right:max(50dlu;p), 4dlu, 150dlu", ""); builder = new DefaultFormBuilder(layout); builder.setDefaultDialogBorder(); if (!_showRulesOnly) { _filterName = createTextField(); _filterDescription = createTextField(); builder.appendSeparator(FilterMessages.getString("BFilterEditor.ui.lbl.1")); builder.append(new JLabel(FilterMessages.getString("BFilterEditor.ui.lbl.2") + ": "), _filterName); builder.nextLine(); builder.append(new JLabel(FilterMessages.getString("BFilterEditor.ui.lbl.3") + ": "), _filterDescription); builder.nextLine(); } _rulesPanel = new JPanel(); _rulesPanel.setLayout(new BoxLayout(_rulesPanel, BoxLayout.Y_AXIS)); expr = new JPanel(); expr.add(new JLabel(FilterMessages.getString("BFilterEditor.ui.lbl.4"))); _exprType = new JComboBox<ExpressionTypeItem>(); _exprType.addItem(_exprItems[ANY_EXPR_ITEM]);//or _exprType.addItem(_exprItems[ALL_EXPR_ITEM]);//and _exprType.setSelectedIndex(ALL_EXPR_ITEM); expr.add(_exprType); expr.add(new JLabel(FilterMessages.getString("BFilterEditor.ui.lbl.5") + ":")); exprMain = new JPanel(new BorderLayout()); exprMain.add(expr, BorderLayout.WEST); rulesContainer = new JPanel(new BorderLayout()); rulesContainer.add(_rulesPanel, BorderLayout.NORTH); scroller = new JScrollPane(rulesContainer); this.setLayout(new BorderLayout()); top = new JPanel(new BorderLayout()); if (!_showRulesOnly) { top.add(builder.getContainer(), BorderLayout.CENTER); } top.add(exprMain, BorderLayout.SOUTH); this.add(top, BorderLayout.NORTH); this.add(scroller, BorderLayout.CENTER); this.add(createHelper(), BorderLayout.SOUTH); }
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);//from w w w.j ava 2s . c o 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.olap.CubeEditPanel.java
License:Open Source License
/** * Creates a new property editor for the given OLAP Cube. * //from w w w.j a v a 2s . c om * TODO remove the dbMapping if it is no longer needed as the session will * be used from the playpen or remove the session from the view and join * entry panel constructors and pass a dbMapping as required instead. * * @param cube * The data model of the cube to edit */ public CubeEditPanel(Cube cube, final PlayPen playPen, final SQLDatabaseMapping dbMapping) throws SQLObjectException { this.cube = cube; List<SQLTable> tables = OLAPUtil.getAvailableTables(cube); FormLayout layout = new FormLayout("left:max(40dlu;pref), 3dlu, 80dlu:grow", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setDefaultDialogBorder(); builder.append(status, 3); builder.append("Name", nameField = new JTextField(cube.getName())); builder.append("Caption", captionField = new JTextField(cube.getCaption())); // default measure is optional so we need to add in a null option List<Measure> measures = new ArrayList<Measure>(cube.getMeasures()); measures.add(0, null); builder.append("Default Measure", defMeasure = new JComboBox(measures.toArray())); defMeasure.setRenderer(new OLAPObjectListCellRenderer()); for (Measure ms : cube.getMeasures()) { if (ms.getName().equals(cube.getDefaultMeasure())) { defMeasure.setSelectedItem(ms); break; } } final JButton viewEditButton = new JButton(new AbstractAction("Edit...") { public void actionPerformed(ActionEvent e) { JDialog dialog = DataEntryPanelBuilder.createDataEntryPanelDialog( new ViewEntryPanel(playPen.getSession(), getDatabase(), CubeEditPanel.this), playPen, "View Builder", DataEntryPanelBuilder.OK_BUTTON_LABEL); dialog.pack(); dialog.setVisible(true); } }); builder.appendSeparator("Fact Table"); tableChooser = new JComboBox(new Vector<SQLTable>(tables)); final JScrollPane selectStatementsPane = new JScrollPane(selectStatements = new JTextArea("", 4, 30)); Action radioButtonsAction = new AbstractAction() { public void actionPerformed(ActionEvent arg0) { tableChooser.setEnabled(tableRadioButton.isSelected()); selectStatementsPane.setEnabled(viewRadioButton.isSelected()); viewAlias.setEnabled(viewRadioButton.isSelected()); viewEditButton.setEnabled(viewRadioButton.isSelected()); } }; tableRadioButton = new JRadioButton(); tableRadioButton.setAction(radioButtonsAction); tableRadioButton.setText("Use Existing Table"); viewRadioButton = new JRadioButton(); viewRadioButton.setAction(radioButtonsAction); viewRadioButton.setText("Use View"); ButtonGroup buttonGroup = new ButtonGroup(); buttonGroup.add(tableRadioButton); buttonGroup.add(viewRadioButton); DefaultFormBuilder factBuilder = new DefaultFormBuilder( new FormLayout("9dlu, 3dlu, pref, 3dlu, pref:grow")); builder.append(factBuilder.getPanel(), 3); factBuilder.append(tableRadioButton, 5); factBuilder.append("", tableChooser, 3); factBuilder.append(viewRadioButton, 5); factBuilder.append("", new JLabel("Alias"), viewAlias = new JTextField()); factBuilder.append("", new JLabel("SELECT Statements"), 3); factBuilder.append("", selectStatementsPane, 3); factBuilder.append("", viewEditButton); factBuilder.nextLine(); selectStatements.setLineWrap(true); selectStatements.setEditable(false); if (cube.getFact() instanceof View) { viewRadioButton.doClick(); tableRadioButton.setEnabled(false); tableChooser.setEnabled(false); //XXX There could be multiple SQL objects in a view but we can only edit one at a time right now. final List<SQL> selects = ((View) cube.getFact()).getSelects(); for (SQL sql : selects) { if (sql.getDialect() == null || sql.getDialect().equals("generic")) { selectStatements.append(sql.getText()); break; } } if (selectStatements.getText().trim().length() == 0 && !selects.isEmpty()) { selectStatements.append(selects.get(0).getText()); } } else if (tables.isEmpty()) { tableChooser.addItem("Database has no tables"); viewRadioButton.doClick(); tableRadioButton.setEnabled(false); tableChooser.setEnabled(false); } else { SQLTable t = OLAPUtil.tableForCube(cube); //if SQLTable t is not found, then either cube.fact is not defined, or cube.fact is a view if (tables.contains(t)) { tableChooser.setSelectedItem(t); tableRadioButton.doClick(); } else if (cube.getFact() != null) { viewRadioButton.doClick(); } else { tableRadioButton.doClick(); } } panel = builder.getPanel(); handler = new FormValidationHandler(status); Validator validator = new OLAPObjectNameValidator((OLAPObject) cube.getParent(), cube, false); handler.addValidateObject(nameField, validator); }
From source file:ca.sqlpower.architect.swingui.olap.LevelEditPanel.java
License:Open Source License
/** * Creates a new property editor for the given level of a hierarchy. * /*from w w w .ja va2s .c om*/ * @param cube * The data model of the Level to edit * @throws SQLObjectException * if digging up the source table results in a database error */ public LevelEditPanel(Level level) throws SQLObjectException { this.level = level; FormLayout layout = new FormLayout("left:max(40dlu;pref), 3dlu, 80dlu:grow", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setDefaultDialogBorder(); builder.append(status, 3); builder.append("Name", name = new JTextField(level.getName())); builder.append("Caption", captionField = new JTextField(level.getCaption())); builder.append("Column", columnChooser = new JComboBox()); if (level.getUniqueMembers() != null) { builder.append("Unique Members", uniqueMembers = new JCheckBox("", level.getUniqueMembers())); } else { builder.append("Unique Members", uniqueMembers = new JCheckBox("")); } Hierarchy hierarchy = (Hierarchy) level.getParent(); Dimension dimension = (Dimension) hierarchy.getParent(); // Currently, the levelType attribute appears to only apply to Time Dimensions if (dimension.getType() != null && dimension.getType().equals("TimeDimension")) { builder.append("Level Type", levelType = new JComboBox(LevelType.values())); if (level.getLevelType() != null) { levelType.setSelectedItem(LevelType.valueOf(level.getLevelType())); } else { levelType.setSelectedItem(LevelType.values()[0]); } } SQLTable dimensionTable = OLAPUtil.tableForHierarchy(hierarchy); // if the hierarchy's table was not set, then we try to find it from elsewhere. // we'll look through the cubes that reference the hierarchy's parent dimension // and if the fact table and foreign keys of those are same through out, we set // those values for the hierarchy. if (dimensionTable == null) { OLAPSession oSession = OLAPUtil.getSession(level); Schema sch = oSession.getSchema(); String parentDimName = hierarchy.getParent().getName(); boolean valid = true; Table fact = null; String foreignKey = null; for (int i = 0; i < sch.getCubes().size() && valid; i++) { Cube c = sch.getCubes().get(i); if (c.getFact() == null) continue; for (CubeDimension cd : c.getDimensions()) { if (cd instanceof DimensionUsage) { DimensionUsage du = (DimensionUsage) cd; if (du.getSource().equalsIgnoreCase(parentDimName)) { Table rel = (Table) c.getFact(); String fk = du.getForeignKey(); if (fk != null) { if (fact == null && foreignKey == null) { fact = rel; foreignKey = fk; } else { if (!fact.getSchema().equalsIgnoreCase(rel.getSchema()) || !fact.getName().equalsIgnoreCase(rel.getName()) || !foreignKey.equalsIgnoreCase(fk)) { valid = false; } } } break; } } } } if (valid && fact != null && foreignKey != null) { dimensionTable = OLAPUtil.getSQLTableFromOLAPTable(oSession.getDatabase(), fact); Table tab = new Table(); tab.setSchema(fact.getSchema()); tab.setName(fact.getName()); hierarchy.setRelation(tab); hierarchy.setPrimaryKey(foreignKey); } } if (dimensionTable == null) { columnChooser.addItem("Parent hierarchy has no table"); columnChooser.setEnabled(false); } else if (dimensionTable.getColumns().isEmpty()) { columnChooser.addItem("Parent hierarchy table has no columns"); columnChooser.setEnabled(false); } else { columnChooser.setModel(new SQLObjectComboBoxModel(dimensionTable, SQLColumn.class)); for (SQLColumn col : dimensionTable.getColumns()) { if (col.getName().equalsIgnoreCase(level.getColumn())) { columnChooser.setSelectedItem(col); } } } handler = new FormValidationHandler(status, true); Validator validator = new OLAPObjectNameValidator((OLAPObject) level.getParent(), level, false); handler.addValidateObject(name, validator); handler.addValidateObject(columnChooser, new NotNullValidator("Column")); builder.appendSeparator("Properties"); propertiesPanel = new PropertiesEditPanel(dimensionTable, handler); builder.append(propertiesPanel, 3); panel = builder.getPanel(); }
From source file:ca.sqlpower.architect.swingui.olap.MeasureEditPanel.java
License:Open Source License
/** * Creates a new property editor for the given OLAP Measure. * // w w w . j a v a2s. c o m * @param cube The data model of the measure to edit * @throws SQLObjectException * if populating the necessary SQLObjects fails */ public MeasureEditPanel(Measure measure) throws SQLObjectException { this.measure = measure; handler = new FormValidationHandler(status, true); FormLayout layout = new FormLayout("left:max(40dlu;pref), 3dlu, 80dlu:grow", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setDefaultDialogBorder(); builder.append(status, 3); builder.append("Name", name = new JTextField(measure.getName())); builder.append("Caption", captionField = new JTextField(measure.getCaption())); String[] rolapAggregates = new String[] { "sum", "count", "min", "max", "avg", "distinct-count" }; builder.append("Aggregator", aggregator = new JComboBox(rolapAggregates)); if (measure.getAggregator() != null) { aggregator.setSelectedItem(measure.getAggregator()); } builder.appendSeparator("Value"); Action radioButtonsAction = new AbstractAction() { public void actionPerformed(ActionEvent arg0) { columnChooser.setEnabled(columnRadioButton.isSelected()); expression.setEnabled(expRadioButton.isSelected()); handler.performFormValidation(); } }; columnRadioButton = new JRadioButton(); columnRadioButton.setAction(radioButtonsAction); columnRadioButton.setText("Use Column"); expRadioButton = new JRadioButton(); expRadioButton.setAction(radioButtonsAction); expRadioButton.setText("Use Expression"); ButtonGroup buttonGroup = new ButtonGroup(); buttonGroup.add(columnRadioButton); buttonGroup.add(expRadioButton); builder.append(columnRadioButton, 3); builder.append(columnChooser = new JComboBox(), 3); builder.append(expRadioButton, 3); builder.append(new JScrollPane(expression = new JTextArea(4, 30)), 3); expression.setLineWrap(true); Cube parentCube = (Cube) measure.getParent(); SQLTable cubeTable = OLAPUtil.tableForCube(parentCube); boolean enableColumns = false; if (cubeTable == null) { columnChooser.addItem("Parent Cube has no table"); } else if (cubeTable.getColumns().isEmpty()) { columnChooser.addItem("Parent Cube table has no columns"); } else { columnChooser.setModel(new SQLObjectComboBoxModel(cubeTable, SQLColumn.class)); columnRadioButton.doClick(); for (SQLColumn col : cubeTable.getColumns()) { if (col.getName().equalsIgnoreCase(measure.getColumn())) { columnChooser.setSelectedItem(col); break; } } enableColumns = true; } columnChooser.setEnabled(enableColumns); columnRadioButton.setEnabled(enableColumns); SQL exp = null; MeasureExpression mExp = measure.getMeasureExp(); if (mExp != null) { for (SQL sql : measure.getMeasureExp().getExpressions()) { // we only support generic expressions right now. if (sql.getDialect() != null && sql.getDialect().equalsIgnoreCase("generic")) { exp = sql; } } expRadioButton.doClick(); } expression.setText(exp == null ? "" : exp.getText()); if (!columnRadioButton.isSelected()) { expRadioButton.doClick(); } Validator validator = new OLAPObjectNameValidator((OLAPObject) measure.getParent(), measure, false); handler.addValidateObject(name, validator); handler.addValidateObject(columnChooser, new NotNullValidator("Value column")); panel = builder.getPanel(); }