Java源码示例:com.intellij.util.ui.ListTableModel

示例1
public TargetExpressionListUi(Project project) {
  this.project = project;

  listModel = new ListTableModel<>(new TargetColumn());
  tableView = new TableView<>(listModel);
  tableView.getEmptyText().setText("Choose some targets");
  tableView.setPreferredScrollableViewportSize(new Dimension(200, tableView.getRowHeight() * 4));

  setLayout(new BorderLayout());
  add(
      ToolbarDecorator.createDecorator(tableView)
          .setAddAction(button -> addTarget())
          .setRemoveAction(button -> removeTarget())
          .disableUpDownActions()
          .createPanel(),
      BorderLayout.CENTER);
}
 
示例2
private void createUIComponents() {
    searchResultsModel =
            new ListTableModel<>(
                    new ColumnInfo<P4Label, String>(P4Bundle.getString("search.label.label-name")) {
                        @Nullable
                        @Override
                        public String valueOf(P4Label o) {
                            return o == null ? null : o.getName();
                        }
                    },
                    new ColumnInfo<P4Label, String>(P4Bundle.getString("search.label.label-description")) {
                        @Nullable
                        @Override
                        public String valueOf(P4Label o) {
                            return o == null ? null : o.getDescription();
                        }
                    });
    mySearchResults = new JBTable(searchResultsModel);
    mySearchResults.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    mySearchSpinner = new AsyncProcessIcon("Searching for labels");
}
 
示例3
public UseAliasListForm() {
    this.tableView = new TableView<>();

    this.modelList = new ListTableModel<>(
        new ClassColumn(),
        new AliasColumn(),
        new DisableColumn()
    );

    this.tableView.setModelAndUpdateColumns(this.modelList);

    buttonReset.addActionListener(e -> {
        tableView.getTableViewModel().fireTableDataChanged();
        changed = true;
        resetList();
        try {
            apply();
            ApplicationSettings.getInstance().provideDefaults = false;
            JOptionPane.showMessageDialog(panel, "Default alias applied");
        } catch (ConfigurationException ignored) {
        }
    });

    initList();
}
 
示例4
public VariablesPanel() {
    super(new BorderLayout());
    setName(VARIABLES_PANEL);
    variablesModel = new ListTableModel<XQueryRunVariable>(IS_ACTIVE, NAME, NAMESPACE, TYPE, VALUE);
    variablesTable = prepareVariablesTable();
    toolbarDecorator = prepareVariablesTableToolbarDecorator(variablesTable);
    add(toolbarDecorator.createPanel());
    setPreferredSize(new Dimension(- 1, 120));
}
 
示例5
@Test
public void shouldHaveTheRightColumnNames() {
    ListTableModel<XQueryRunVariable> model = (ListTableModel<XQueryRunVariable>) window.table().component()
            .getModel();

    ColumnInfo[] columnInfoArray = model.getColumnInfos();

    assertThat(columnInfoArray[0].getName(), is(IsActiveColumnInfo.HEADER));
    assertThat(columnInfoArray[1].getName(), is(NameColumnInfo.HEADER));
    assertThat(columnInfoArray[2].getName(), is(NamespaceColumnInfo.HEADER));
    assertThat(columnInfoArray[3].getName(), is(TypeColumnInfo.HEADER));
    assertThat(columnInfoArray[4].getName(), is(ValueColumnInfo.HEADER));
}
 
示例6
private void createUIComponents() {
    mainPanel = new JPanel();

    mainPanel.setLayout(new GridLayout(0, 1));

    this.modelList = new ListTableModel<>(
        new IconColumn(),
        new NamespaceColumn(),
        new ServiceColumn()
    );

    for (Map.Entry<String, Set<String>> entry : this.arguments.entrySet()) {
        this.modelList.addRow(new ServiceParameter(entry.getKey(), entry.getValue()));
    }

    this.tableView = new TableView<>();
    this.tableView.setModelAndUpdateColumns(this.modelList);

    mainPanel.add(ToolbarDecorator.createDecorator(this.tableView)
            .disableAddAction()
            .disableDownAction()
            .disableRemoveAction()
            .disableUpDownActions()
            .createPanel()
    );

}
 
示例7
public void changeColumnSet(DualViewColumnInfo[] columns) {
  myTreeView.setTableModel(new ListTreeTableModelOnColumns((TreeNode)myTreeView.getTreeViewModel().getRoot(),
                                                           createTreeColumns(columns)));
  myFlatView.setModelAndUpdateColumns(new ListTableModel(columns));
  if (myTreeCellRenderer != null) myTreeView.setTreeCellRenderer(myTreeCellRenderer);
  setRootVisible(myRootVisible);

  refreshFlatModel();

  addWidthListenersTo(myTreeView);
  addWidthListenersTo(myFlatView);
}
 
示例8
public void selectFirstIncludedAttachment() {
  final List items = ((ListTableModel)myTable.getModel()).getItems();
  for (Object item : items) {
    if (((Attachment)item).isIncluded()) {
      myTable.setSelection(Collections.singleton((Attachment)item));
      break;
    }
  }
}
 
示例9
public void reset() {
  IssueNavigationConfiguration configuration = IssueNavigationConfiguration.getInstance(myProject);
  myLinks = new ArrayList<IssueNavigationLink>();
  for(IssueNavigationLink link: configuration.getLinks()) {
    myLinks.add(new IssueNavigationLink(link.getIssueRegexp(), link.getLinkRegexp()));
  }
  myModel = new ListTableModel<IssueNavigationLink>(
    new ColumnInfo[] { ISSUE_COLUMN, LINK_COLUMN },
    myLinks,
    0);
  myLinkTable.setModel(myModel);
}
 
示例10
protected ListTableModel<MuleSdk> getSdkTableModel() {
    return new SdkTableModel();
}
 
示例11
public ListTableModel<WeaveInput> getWeaveInputs()
{
    return myModel;
}
 
示例12
public AddWeaveInputAction(ListTableModel<WeaveInput> myModel)
{
    this.myModel = myModel;
}
 
示例13
public RemoveWeaveInputAction(ListTableModel<WeaveInput> myModel)
{
    this.myModel = myModel;
}
 
示例14
public EditWeaveInputAction(ListTableModel<WeaveInput> myModel)
{
    this.myModel = myModel;
}
 
示例15
void setJobModel(@NotNull ListTableModel<P4Job> model) {
    this.jobModel = model;
}
 
示例16
public SearchSelectPanel(@NotNull P4CommandRunner.QueryAnswer<? extends Collection<T>> query,
        @Nullable final SelectionChangedListener listener, @NotNull List<ColumnInfo<T, ?>> columns) {
    super(new BorderLayout());

    Runnable onSelectionChange = () -> {
        if (listener == null) {
            return;
        }
        int count = 0;
        synchronized (itemSync) {
            for (SelectedItem<T> item : items) {
                if (item.selected) {
                    count++;
                }
            }
        }
        listener.selectionCount(count);
    };

    ColumnInfo[] columnArray = new ColumnInfo[columns.size() + 1];
    columnArray[0] = new BooleanColumnInfo<SelectedItem<T>>(P4Bundle.getString("search-select.column.selected"), true) {
        @Override
        protected boolean booleanValue(SelectedItem<T> o) {
            return o.selected;
        }

        @Override
        protected void setBooleanValue(SelectedItem<T> o, boolean value) {
            o.selected = value;
            onSelectionChange.run();
        }
    };

    this.searchableColumns = new ArrayList<>(columns.size());
    for (int i = 0; i < columns.size(); i++) {
        ColumnInfo<T, ?> column = columns.get(i);
        columnArray[i + 1] = proxyColumnInfo(column, onSelectionChange);
        if (String.class.equals(column.getColumnClass())) {
            //noinspection unchecked
            searchableColumns.add((ColumnInfo<T, String>) column);
        }
    }
    tableModel = new ListTableModel<>(columnArray);

    final JBTable table = new JBTable(tableModel);
    table.getColumnModel().getColumn(0).setCellEditor(new BooleanTableCellEditor(false, SwingConstants.CENTER));
    table.getColumnModel().getColumn(0).setCellRenderer(new BooleanTableCellRenderer(SwingConstants.CENTER));
    this.add(new JBScrollPane(table), BorderLayout.CENTER);
    this.add(table.getTableHeader(), BorderLayout.NORTH);
    table.getEmptyText().setText(P4Bundle.getString("search-select.status.loading"));


    final FilterComponent filterComponent = new FilterComponent("search-select", 10, true) {
        @Override
        public void filter() {
            String text = getFilter();
            filterTable(text);
        }
    };

    this.add(filterComponent, BorderLayout.SOUTH);

    query
            .whenCompleted((tValues) -> {
                table.getEmptyText().setText(P4Bundle.getString("search-select.status.empty"));
                synchronized (itemSync) {
                    items.clear();
                    tValues.forEach(t -> items.add(new SelectedItem<>(t)));
                }
                filterTable(filterComponent.getFilter());
            })
            .whenServerError(e -> {
                table.getEmptyText().setText(P4Bundle.message("search-select.status.error",
                        e.getLocalizedMessage()));
                synchronized (itemSync) {
                    items.clear();
                }
                if (listener != null) {
                    listener.selectionCount(-1);
                }
            });


}
 
示例17
private JPanel initBuckCellSection() {
  JPanel panel = new JPanel(new BorderLayout());
  panel.setBorder(IdeBorderFactory.createTitledBorder("Cells", true));
  cellTableModel = new ListTableModel<>(CELL_NAME_COLUMN, ROOT_COLUMN, BUILD_FILENAME_COLUMN);
  cellTableModel.setItems(buckCellSettingsProvider.getCells());
  TableView<BuckCell> cellTable = new TableView<>(cellTableModel);
  cellTable.setPreferredScrollableViewportSize(
      new Dimension(
          cellTable.getPreferredScrollableViewportSize().width, 8 * cellTable.getRowHeight()));
  ToolbarDecorator decorator =
      ToolbarDecorator.createDecorator(cellTable)
          .setAddAction(
              (AnActionButton button) -> {
                final FileChooserDescriptor dirChooser =
                    FileChooserDescriptorFactory.createSingleFolderDescriptor()
                        .withTitle("Select root directory of buck cell");
                Project project = buckProjectSettingsProvider.getProject();
                FileChooser.chooseFile(
                    dirChooser,
                    project,
                    BuckSettingsUI.this,
                    project.getBaseDir(),
                    file -> {
                      BuckCell buckCell = new BuckCell();
                      buckCell.setName(file.getName());
                      buckCell.setRoot(file.getPath());
                      cellTableModel.addRow(buckCell);
                    });
              })
          .addExtraAction(
              new AnActionButton("Automatically discover cells", Actions.Find) {
                @Override
                public void actionPerformed(AnActionEvent anActionEvent) {
                  discoverCells();
                }
              });
  JBLabel label = new JBLabel("By default, commands take place in the topmost cell");
  panel.add(label, BorderLayout.NORTH);
  panel.add(decorator.createPanel(), BorderLayout.CENTER);
  return panel;
}
 
示例18
public TableView() {
  this(new ListTableModel<Item>(ColumnInfo.EMPTY_ARRAY));
}
 
示例19
public TableView(final ListTableModel<Item> model) {
  super(model);
  setModelAndUpdateColumns(model);
}
 
示例20
/**
 * use {@link #setModelAndUpdateColumns(com.intellij.util.ui.ListTableModel<Item>)} instead
 * @param model
 */
@Deprecated
public void setModel(final ListTableModel<Item> model) {
  setModelAndUpdateColumns(model);
}
 
示例21
public void setModelAndUpdateColumns(final ListTableModel<Item> model) {
  super.setModel(model);
  createDefaultColumnsFromModel();
  updateColumnSizes();
}
 
示例22
public ListTableModel<Item> getListTableModel() {
  return (ListTableModel<Item>)super.getModel();
}
 
示例23
public BaseTableView(final ListTableModel model) {
  super(model);
}
 
示例24
private void refreshFlatModel() {
  if (myTableRefreshingIsLocked) return;
  ((ListTableModel)myFlatView.getModel()).setItems(myTreeView.getFlattenItems());
}
 
示例25
protected JComponent createCenterPanel() {
  Splitter splitter = new Splitter(true);
  splitter.setShowDividerControls(true);

  ProductivityFeaturesRegistry registry = ProductivityFeaturesRegistry.getInstance();
  ArrayList<FeatureDescriptor> features = new ArrayList<FeatureDescriptor>();
  for (String id : registry.getFeatureIds()) {
    features.add(registry.getFeatureDescriptor(id));
  }
  final TableView table = new TableView<FeatureDescriptor>(new ListTableModel<FeatureDescriptor>(COLUMNS, features, 0));
  new TableViewSpeedSearch<FeatureDescriptor>(table) {
    @Override
    protected String getItemText(@Nonnull FeatureDescriptor element) {
      return element.getDisplayName();
    }
  };

  JPanel controlsPanel = new JPanel(new VerticalFlowLayout());


  Application app = ApplicationManager.getApplication();
  long uptime = System.currentTimeMillis() - app.getStartTime();
  long idleTime = app.getIdleTime();

  final String uptimeS = FeatureStatisticsBundle.message("feature.statistics.application.uptime",
                                                         ApplicationNamesInfo.getInstance().getFullProductName(),
                                                         DateFormatUtil.formatDuration(uptime));

  final String idleTimeS = FeatureStatisticsBundle.message("feature.statistics.application.idle.time",
                                                           DateFormatUtil.formatDuration(idleTime));

  String labelText = uptimeS + ", " + idleTimeS;
  CompletionStatistics stats = ((FeatureUsageTrackerImpl)FeatureUsageTracker.getInstance()).getCompletionStatistics();
  if (stats.dayCount > 0 && stats.sparedCharacters > 0) {
    String total = formatCharacterCount(stats.sparedCharacters, true);
    String perDay = formatCharacterCount(stats.sparedCharacters / stats.dayCount, false);
    labelText += "<br>Code completion has saved you from typing at least " + total + " since " + DateFormatUtil.formatDate(stats.startDate) +
                 " (~" + perDay + " per working day)";
  }

  CumulativeStatistics fstats = ((FeatureUsageTrackerImpl)FeatureUsageTracker.getInstance()).getFixesStats();
  if (fstats.dayCount > 0 && fstats.invocations > 0) {
    labelText +=
      "<br>Quick fixes have saved you from " + fstats.invocations + " possible bugs since " + DateFormatUtil.formatDate(fstats.startDate) +
      " (~" + fstats.invocations / fstats.dayCount + " per working day)";
  }

  controlsPanel.add(new JLabel("<html><body>" + labelText + "</body></html>"), BorderLayout.NORTH);

  JPanel topPanel = new JPanel(new BorderLayout());
  topPanel.add(controlsPanel, BorderLayout.NORTH);
  topPanel.add(ScrollPaneFactory.createScrollPane(table), BorderLayout.CENTER);

  splitter.setFirstComponent(topPanel);

  final JEditorPane browser = new JEditorPane(UIUtil.HTML_MIME, "");
  browser.setEditable(false);
  splitter.setSecondComponent(ScrollPaneFactory.createScrollPane(browser));

  table.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
    public void valueChanged(ListSelectionEvent e) {
      Collection selection = table.getSelection();
      try {
        if (selection.isEmpty()) {
          browser.read(new StringReader(""), null);
        }
        else {
          FeatureDescriptor feature = (FeatureDescriptor)selection.iterator().next();
          TipUIUtil.openTipInBrowser(feature.getTipFileName(), browser, feature.getProvider());
        }
      }
      catch (IOException ex) {
        LOG.info(ex);
      }
    }
  });

  return splitter;
}
 
示例26
@Nonnull
public ListTableModel<T> getModel() {
  return model;
}
 
示例27
public void setAttachments(List<Attachment> attachments) {
  myTable.setModelAndUpdateColumns(new ListTableModel<Attachment>(new ColumnInfo[]{ENABLED_COLUMN, PATH_COLUMN}, attachments, 1));
  myTable.setBorder(IdeBorderFactory.createBorder());
  myTable.setSelection(Collections.singletonList(attachments.get(0)));
}
 
示例28
protected abstract ListTableModel createListModel();