List of usage examples for com.intellij.openapi.ui ComboBoxTableRenderer ComboBoxTableRenderer
public ComboBoxTableRenderer(final T[] values)
From source file:com.android.tools.idea.gradle.structure.editors.ModuleDependenciesPanel.java
License:Apache License
public ModuleDependenciesPanel(@NotNull Project project, @NotNull String modulePath) { super(new BorderLayout()); myModulePath = modulePath;/*from ww w .j a v a 2 s . c o m*/ myProject = project; myModel = new ModuleDependenciesTableModel(); myGradleSettingsFile = GradleSettingsFile.get(myProject); Module module = GradleUtil.findModuleByGradlePath(myProject, modulePath); myGradleBuildFile = module != null ? GradleBuildFile.get(module) : null; if (myGradleBuildFile != null) { List<BuildFileStatement> dependencies = myGradleBuildFile.getDependencies(); for (BuildFileStatement dependency : dependencies) { myModel.addItem(new ModuleDependenciesTableItem(dependency)); } } else { LOG.warn("Unable to find Gradle build file for module " + myModulePath); } myModel.resetModified(); myEntryTable = new JBTable(myModel); TableRowSorter<ModuleDependenciesTableModel> sorter = new TableRowSorter<>(myModel); sorter.setRowFilter(myModel.getFilter()); myEntryTable.setRowSorter(sorter); myEntryTable.setShowGrid(false); myEntryTable.setDragEnabled(false); myEntryTable.setIntercellSpacing(new Dimension(0, 0)); myEntryTable.setDefaultRenderer(ModuleDependenciesTableItem.class, new TableItemRenderer()); if (myGradleBuildFile == null) { return; } final boolean isAndroid = myGradleBuildFile.hasAndroidPlugin(); List<Dependency.Scope> scopes = Lists.newArrayList(Sets.filter(EnumSet.allOf(Dependency.Scope.class), input -> isAndroid ? input.isAndroidScope() : input.isJavaScope())); ComboBoxModel<Dependency.Scope> boxModel = new CollectionComboBoxModel<>(scopes, null); JComboBox<Dependency.Scope> scopeEditor = new ComboBox<>(boxModel); myEntryTable.setDefaultEditor(Dependency.Scope.class, new DefaultCellEditor(scopeEditor)); myEntryTable.setDefaultRenderer(Dependency.Scope.class, new ComboBoxTableRenderer<Dependency.Scope>(Dependency.Scope.values()) { @Override protected String getTextFor(@NotNull final Dependency.Scope value) { return value.getDisplayName(); } }); myEntryTable.getSelectionModel().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); new SpeedSearchBase<JBTable>(myEntryTable) { @Override public int getSelectedIndex() { return myEntryTable.getSelectedRow(); } @Override protected int convertIndexToModel(int viewIndex) { return myEntryTable.convertRowIndexToModel(viewIndex); } @Override @NotNull public Object[] getAllElements() { return myModel.getItems().toArray(); } @Override @NotNull public String getElementText(Object element) { return getCellAppearance((ModuleDependenciesTableItem) element).getText(); } @Override public void selectElement(@NotNull Object element, @NotNull String selectedText) { final int count = myModel.getRowCount(); for (int row = 0; row < count; row++) { if (element.equals(myModel.getItemAt(row))) { final int viewRow = myEntryTable.convertRowIndexToView(row); myEntryTable.getSelectionModel().setSelectionInterval(viewRow, viewRow); TableUtil.scrollSelectionToVisible(myEntryTable); break; } } } }; TableColumn column = myEntryTable.getTableHeader().getColumnModel() .getColumn(ModuleDependenciesTableModel.SCOPE_COLUMN); column.setResizable(false); column.setMaxWidth(SCOPE_COLUMN_WIDTH); column.setMinWidth(SCOPE_COLUMN_WIDTH); add(createTableWithButtons(), BorderLayout.CENTER); if (myEntryTable.getRowCount() > 0) { myEntryTable.getSelectionModel().setSelectionInterval(0, 0); } DefaultActionGroup actionGroup = new DefaultActionGroup(); actionGroup.add(myRemoveButton); PopupHandler.installPopupHandler(myEntryTable, actionGroup, ActionPlaces.UNKNOWN, ActionManager.getInstance()); }
From source file:com.android.tools.idea.structure.gradle.ModuleDependenciesPanel.java
License:Apache License
public ModuleDependenciesPanel(@NotNull Project project, @NotNull String modulePath) { super(new BorderLayout()); myModulePath = modulePath;/*from ww w. java 2 s. co m*/ myProject = project; myModel = new ModuleDependenciesTableModel(); myGradleSettingsFile = GradleSettingsFile.get(myProject); Module module = GradleUtil.findModuleByGradlePath(myProject, modulePath); myGradleBuildFile = module != null ? GradleBuildFile.get(module) : null; if (myGradleBuildFile != null) { List<BuildFileStatement> dependencies = myGradleBuildFile.getDependencies(); for (BuildFileStatement dependency : dependencies) { myModel.addItem(new ModuleDependenciesTableItem(dependency)); } } else { LOG.warn("Unable to find Gradle build file for module " + myModulePath); } myModel.resetModified(); myEntryTable = new JBTable(myModel); TableRowSorter<ModuleDependenciesTableModel> sorter = new TableRowSorter<ModuleDependenciesTableModel>( myModel); sorter.setRowFilter(myModel.getFilter()); myEntryTable.setRowSorter(sorter); myEntryTable.setShowGrid(false); myEntryTable.setDragEnabled(false); myEntryTable.setIntercellSpacing(new Dimension(0, 0)); myEntryTable.setDefaultRenderer(ModuleDependenciesTableItem.class, new TableItemRenderer()); if (myGradleBuildFile == null) { return; } final boolean isAndroid = myGradleBuildFile.hasAndroidPlugin(); List<Dependency.Scope> scopes = Lists .newArrayList(Sets.filter(EnumSet.allOf(Dependency.Scope.class), new Predicate<Dependency.Scope>() { @Override public boolean apply(Dependency.Scope input) { return isAndroid ? input.isAndroidScope() : input.isJavaScope(); } })); ComboBoxModel boxModel = new CollectionComboBoxModel(scopes, null); JComboBox scopeEditor = new ComboBox(boxModel); myEntryTable.setDefaultEditor(Dependency.Scope.class, new DefaultCellEditor(scopeEditor)); myEntryTable.setDefaultRenderer(Dependency.Scope.class, new ComboBoxTableRenderer<Dependency.Scope>(Dependency.Scope.values()) { @Override protected String getTextFor(@NotNull final Dependency.Scope value) { return value.getDisplayName(); } }); myEntryTable.getSelectionModel().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); new SpeedSearchBase<JBTable>(myEntryTable) { @Override public int getSelectedIndex() { return myEntryTable.getSelectedRow(); } @Override protected int convertIndexToModel(int viewIndex) { return myEntryTable.convertRowIndexToModel(viewIndex); } @Override @NotNull public Object[] getAllElements() { return myModel.getItems().toArray(); } @Override @NotNull public String getElementText(Object element) { return getCellAppearance((ModuleDependenciesTableItem) element).getText(); } @Override public void selectElement(@NotNull Object element, @NotNull String selectedText) { final int count = myModel.getRowCount(); for (int row = 0; row < count; row++) { if (element.equals(myModel.getItemAt(row))) { final int viewRow = myEntryTable.convertRowIndexToView(row); myEntryTable.getSelectionModel().setSelectionInterval(viewRow, viewRow); TableUtil.scrollSelectionToVisible(myEntryTable); break; } } } }; TableColumn column = myEntryTable.getTableHeader().getColumnModel() .getColumn(ModuleDependenciesTableModel.SCOPE_COLUMN); column.setResizable(false); column.setMaxWidth(SCOPE_COLUMN_WIDTH); column.setMinWidth(SCOPE_COLUMN_WIDTH); add(createTableWithButtons(), BorderLayout.CENTER); if (myEntryTable.getRowCount() > 0) { myEntryTable.getSelectionModel().setSelectionInterval(0, 0); } DefaultActionGroup actionGroup = new DefaultActionGroup(); actionGroup.add(myRemoveButton); PopupHandler.installPopupHandler(myEntryTable, actionGroup, ActionPlaces.UNKNOWN, ActionManager.getInstance()); }
From source file:com.mac.hazewinkel.plist.editor.impl.PListEditor.java
License:Apache License
public PListEditor(byte[] bytes, PListFormat storageFormat, Project project) { loadPList(bytes, storageFormat);/*from w ww. ja v a 2s. c o m*/ treeTableModel = new PListJXTreeTableModel(plist, project); plistTree = new MyJXTreeTable(treeTableModel); plistTree.setClosedIcon(null); plistTree.setOpenIcon(null); plistTree.setLeafIcon(null); plistTree.setColumnSelectionAllowed(true); plistTree.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); plistTree.getColumn(1).setMaxWidth(100); plistTree.getColumn(1).setMinWidth(100); plistTree.setSurrendersFocusOnKeystroke(true); plistTree.getTableHeader().setReorderingAllowed(false); plistTree.setSortable(false); plistTree.setDefaultRenderer(String[].class, new ComboBoxTableRenderer<String>(typeValues)); plistTree.setDefaultEditor(String[].class, new StringComboBoxTableRenderer(typeValues)); plistTree.setDefaultRenderer(String.class, new MyStringTableCellRenderer()); plistTree.setDefaultEditor(String.class, new MyStringTableCellEditor(project, plistTree)); mainComponent = ScrollPaneFactory.createScrollPane(plistTree); plistTree.setScrollView(mainComponent); }
From source file:com.microsoft.intellij.forms.TableEntityForm.java
License:Open Source License
public TableEntityForm(Project project) { super(project, true); this.project = project; setModal(true);//from ww w . j a v a 2 s . c o m DefaultTableModel model = new DefaultTableModel() { @Override public boolean isCellEditable(int row, int col) { return (col != 0) && (row > 1 || (col == 3 && tableEntity == null)); } }; model.setColumnIdentifiers(new String[] { "", "Name", "Type", "Value", }); propertiesTable.setModel(model); propertiesTable.getColumn("").setCellRenderer(new DeleteButtonRenderer()); propertiesTable.getColumn("").setMaxWidth(30); propertiesTable.getColumn("").setMinWidth(30); propertiesTable.getColumn("Type").setMaxWidth(100); propertiesTable.getColumn("Type").setMinWidth(100); propertiesTable.getColumn("Type").setCellRenderer( new ComboBoxTableRenderer<TableEntity.PropertyType>(TableEntity.PropertyType.values())); propertiesTable.getColumn("Type").setCellEditor(new ComboBoxTableCellEditor()); propertiesTable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE); propertiesTable.getColumn("Value").setCellEditor(new DatePickerCellEditor() { @Override protected boolean isCellDate(JTable table, int row, int col) { return (table.getValueAt(row, 2) == TableEntity.PropertyType.DateTime); } }); propertiesTable.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent mouseEvent) { int row = propertiesTable.rowAtPoint(mouseEvent.getPoint()); int col = propertiesTable.columnAtPoint(mouseEvent.getPoint()); if (col == 0 && row > 1) { ((DefaultTableModel) propertiesTable.getModel()).removeRow(row); } } }); addPropertyButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { final DefaultTableModel model = (DefaultTableModel) propertiesTable.getModel(); model.addRow(new Object[] { "", "", TableEntity.PropertyType.String, "" }); } }); init(); }
From source file:com.microsoft.intellij.forms.TablesQueryDesigner.java
License:Open Source License
public TablesQueryDesigner(Project project) { super(project, true); setModal(true);//ww w .j a v a2 s . c o m setTitle("Query Builder"); DefaultTableModel model = new DefaultTableModel() { @Override public boolean isCellEditable(int row, int col) { return true; } }; model.setColumnIdentifiers(new String[] { "", "And/Or", "Property Name", "Operation", "Value" }); model.addTableModelListener(new TableModelListener() { @Override public void tableChanged(TableModelEvent tableModelEvent) { updateQueryText(); } }); queryTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); queryTable.setModel(model); queryTable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE); JTableHeader tableHeader = queryTable.getTableHeader(); tableHeader.setReorderingAllowed(false); tableHeader.setResizingAllowed(false); queryTable.getColumn("").setCellRenderer(new DeleteButtonRenderer()); queryTable.getColumn("And/Or").setCellRenderer(new ComboBoxTableRenderer(LogicalOperator.values())); queryTable.getColumn("And/Or").setCellEditor(new ComboBoxTableCellEditor()); queryTable.getColumn("Property Name").setCellRenderer(new ComboBoxTableRenderer(QueryField.values())); queryTable.getColumn("Property Name").setCellEditor(new ComboBoxTableCellEditor()); queryTable.getColumn("Operation").setCellRenderer(new ComboBoxTableRenderer(Operator.values())); queryTable.getColumn("Operation").setCellEditor(new ComboBoxTableCellEditor()); queryTable.getColumn("Value").setCellEditor(new DatePickerCellEditor() { @Override protected boolean isCellDate(JTable jTable, int row, int col) { return jTable.getValueAt(row, 2) == QueryField.Timestamp; } }); queryTable.getColumn("").setPreferredWidth(30); queryTable.getColumn("And/Or").setPreferredWidth(30); queryTable.getColumn("Property Name").setPreferredWidth(100); addClauseButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { addClause(); } }); queryTable.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent mouseEvent) { int row = queryTable.rowAtPoint(mouseEvent.getPoint()); int col = queryTable.columnAtPoint(mouseEvent.getPoint()); if (col == 0) { ((DefaultTableModel) queryTable.getModel()).removeRow(row); } } }); addClause(); init(); }
From source file:com.perl5.lang.htmlmason.idea.configuration.HTMLMasonSettingsConfigurable.java
License:Apache License
protected void createCustomTagsComponent(FormBuilder builder) { myTagNameColumnInfo myTagNameColumnInfo = new myTagNameColumnInfo(); customTagsModel = new ListTableModel<HTMLMasonCustomTag>(myTagNameColumnInfo, new myTagRoleColumInfo()); myTagNameColumnInfo.setCustomTagsModel(customTagsModel); customTagsTable = new JBTable(customTagsModel); final TableColumn secondColumn = customTagsTable.getColumnModel().getColumn(1); ComboBoxTableRenderer<HTMLMasonCustomTagRole> roleComboBoxTableRenderer = new ComboBoxTableRenderer<HTMLMasonCustomTagRole>( HTMLMasonCustomTagRole.values()) { @Override/* www .j ava2 s. com*/ protected String getTextFor(@NotNull HTMLMasonCustomTagRole value) { return value.getTitle(); } @Override public boolean isCellEditable(EventObject event) { if (event instanceof MouseEvent) { return ((MouseEvent) event).getClickCount() >= 1; } return true; } }; secondColumn.setCellRenderer(roleComboBoxTableRenderer); secondColumn.setCellEditor(roleComboBoxTableRenderer); builder.addLabeledComponent(new JLabel("Custom tags that mimics built-in HTML::Mason tags:"), ToolbarDecorator.createDecorator(customTagsTable).setAddAction(new AnActionButtonRunnable() { @Override public void run(AnActionButton anActionButton) { final TableCellEditor cellEditor = customTagsTable.getCellEditor(); if (cellEditor != null) { cellEditor.stopCellEditing(); } final TableModel model = customTagsTable.getModel(); int indexToEdit = -1; for (HTMLMasonCustomTag entry : customTagsModel.getItems()) { if (StringUtil.isEmpty(entry.getText())) { indexToEdit = customTagsModel.indexOf(entry); break; } } if (indexToEdit == -1) { customTagsModel.addRow(new HTMLMasonCustomTag( "customTag" + customTagsModel.getItems().size(), HTMLMasonCustomTagRole.PERL)); indexToEdit = model.getRowCount() - 1; } TableUtil.editCellAt(customTagsTable, indexToEdit, 0); } }).disableDownAction().disableUpAction() .setPreferredSize(JBUI.size(0, PerlConfigurationUtil.WIDGET_HEIGHT)).createPanel()); }
From source file:com.urswolfer.intellij.plugin.gerrit.ui.GerritSelectRevisionInfoColumn.java
License:Apache License
private ComboBoxTableRenderer<String> createComboBoxTableRenderer(final ChangeInfo changeInfo) { List<String> revisions = getRevisions(changeInfo); String[] array = new String[revisions.size()]; return new ComboBoxTableRenderer<String>(revisions.toArray(array)) { @Override//from ww w . jav a2 s . co m public boolean isCellEditable(EventObject event) { if (!GerritSelectRevisionInfoColumn.this.isCellEditable(changeInfo)) { return false; } if (event instanceof MouseEvent) { return ((MouseEvent) event).getClickCount() >= 1; } return false; } }; }