public Component getTableCellRendererComponent(
     JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
   final Color color = UIUtil.getTableFocusCellBackground();
   Component component;
   T t = (T) value;
   try {
     UIManager.put(UIUtil.TABLE_FOCUS_CELL_BACKGROUND_PROPERTY, table.getSelectionBackground());
     component =
         super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
     setText(t != null ? getItemText(t) : "");
     if (component instanceof JLabel) {
       ((JLabel) component).setBorder(noFocusBorder);
     }
   } finally {
     UIManager.put(UIUtil.TABLE_FOCUS_CELL_BACKGROUND_PROPERTY, color);
   }
   final MyTableModel model = (MyTableModel) table.getModel();
   component.setEnabled(
       ElementsChooser.this.isEnabled()
           && (myColorUnmarkedElements ? model.isElementMarked(row) : true));
   final ElementProperties properties = myElementToPropertiesMap.get(t);
   if (component instanceof JLabel) {
     final Icon icon =
         properties != null ? properties.getIcon() : t != null ? getItemIcon(t) : null;
     JLabel label = (JLabel) component;
     label.setIcon(icon);
     label.setDisabledIcon(icon);
   }
   component.setForeground(
       properties != null && properties.getColor() != null
           ? properties.getColor()
           : (isSelected ? table.getSelectionForeground() : table.getForeground()));
   return component;
 }
 public void setAllElementsMarked(boolean marked) {
   final int[] rows = new int[myTableModel.getRowCount()];
   for (int idx = 0; idx < rows.length; idx++) {
     rows[idx] = idx;
   }
   myTableModel.setMarked(rows, marked);
 }
 public List<Pair<Module, String>> getAllModules() {
   final int count = myTableModel.getRowCount();
   List<Pair<Module, String>> elements = new ArrayList<Pair<Module, String>>();
   for (int idx = 0; idx < count; idx++) {
     final Module module = myTableModel.getModuleAt(idx);
     elements.add(Pair.create(module, myTableModel.getGenDirName(module)));
   }
   return elements;
 }
 @NotNull
 public List<T> getMarkedElements() {
   final int count = myTableModel.getRowCount();
   List<T> elements = new ArrayList<T>();
   for (int idx = 0; idx < count; idx++) {
     final T element = myTableModel.getElementAt(idx);
     if (myTableModel.isElementMarked(idx)) {
       elements.add(element);
     }
   }
   return elements;
 }
 public void moveElement(T element, int newRow) {
   final int elementRow = myTableModel.getElementRow(element);
   if (elementRow < 0
       || elementRow == newRow
       || newRow < 0
       || newRow >= myTableModel.getRowCount()) {
     return;
   }
   final boolean wasSelected = myTable.getSelectionModel().isSelectedIndex(elementRow);
   myTableModel.changeElementRow(element, newRow);
   if (wasSelected) {
     selectRow(newRow);
   }
 }
 private int[] getElementsRows(final Collection<? extends T> elements) {
   final int[] rows = new int[elements.size()];
   int index = 0;
   for (final T element : elements) {
     rows[index++] = myTable.convertRowIndexToView(myTableModel.getElementRow(element));
   }
   return rows;
 }
 private int[] getElementsRows(final Collection<? extends Module> elements) {
   final int[] rows = new int[elements.size()];
   int index = 0;
   for (final Module element : elements) {
     rows[index++] = myTableModel.getElementRow(element);
   }
   return rows;
 }
  public void removeModule(Module element) {
    final int elementRow = myTableModel.getElementRow(element);
    if (elementRow < 0) {
      return; // no such element
    }
    final boolean wasSelected = myTable.getSelectionModel().isSelectedIndex(elementRow);

    myTableModel.removeElement(element);

    if (wasSelected) {
      final int rowCount = myTableModel.getRowCount();
      if (rowCount > 0) {
        selectRow(elementRow % rowCount);
      } else {
        myTable.getSelectionModel().clearSelection();
      }
    }
    myTable.requestFocus();
  }
 public List<Module> getSelectedElements() {
   final List<Module> elements = new ArrayList<Module>();
   final int[] selectedRows = myTable.getSelectedRows();
   for (int selectedRow : selectedRows) {
     if (selectedRow < 0) {
       continue;
     }
     elements.add(myTableModel.getModuleAt(selectedRow));
   }
   return elements;
 }
Exemple #10
0
        @Override
        public TableCellRenderer getCellRenderer(int row, int column) {
          MyTableModel model = (MyTableModel) getModel();
          if (column == 0) {
            // JXTable default renderer doesn't align right
            DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
            renderer.setToolTipText(model.getToolTipText(row));
            renderer.setHorizontalAlignment(JLabel.RIGHT);
            if (model.isExpert(row, column)) {
              renderer.setForeground(Color.GRAY);
            }
            return renderer;
          }

          // code repetition with getCellEditor because of TableCell{Renderer, Editor}
          // non-inheritance
          Class<?> klass = model.getClassAt(row, column);
          PropertyEditorTableAdapter javaBeansRenderer = PropertyEditorTableAdapter.forClass(klass);
          if (javaBeansRenderer != null) {
            return javaBeansRenderer;
          }
          return getDefaultRenderer(klass);
        }
Exemple #11
0
        @Override
        public TableCellEditor getCellEditor(int row, int column) {
          MyTableModel model = (MyTableModel) getModel();
          if (column == 0) {
            return null;
          }

          // code repetition with getCellRenderer because of TableCell{Renderer, Editor}
          // non-inheritance
          Class<?> klass = model.getClassAt(row, column);
          PropertyEditorTableAdapter javaBeansEditor = PropertyEditorTableAdapter.forClass(klass);
          if (javaBeansEditor != null) {
            return javaBeansEditor;
          }
          TableCellEditor defaultEditor = getDefaultEditor(klass);
          if (defaultEditor == null) {
            log.warning("No TableCellEditor for " + klass.getName());
          }
          if (defaultEditor instanceof DefaultCellEditor) {
            // default double-click is bad user interaction
            ((DefaultCellEditor) defaultEditor).setClickCountToStart(0);
          }
          return defaultEditor;
        }
 public void clear() {
   myTableModel.clear();
 }
 public void setEnabled(boolean enabled) {
   super.setEnabled(enabled);
   myTable.setRowSelectionAllowed(enabled);
   myTableModel.fireTableDataChanged();
 }
 public void sort(Comparator<Module> comparator) {
   myTableModel.sort(comparator);
 }
 /**
  * Check if element is marked
  *
  * @param element an element to test
  * @return true if element is marked
  */
 public boolean isElementMarked(T element) {
   final int elementRow = myTableModel.getElementRow(element);
   return myTableModel.isElementMarked(elementRow);
 }
 /**
  * Check if element is marked
  *
  * @param element an element to test
  * @param marked a new value of mark.
  */
 public void setElementMarked(T element, boolean marked) {
   final int elementRow = myTableModel.getElementRow(element);
   myTableModel.setMarked(elementRow, marked);
 }
 public void addElement(T element, final boolean isMarked, ElementProperties elementProperties) {
   myTableModel.addElement(element, isMarked);
   myElementToPropertiesMap.put(element, elementProperties);
   selectRow(myTableModel.getRowCount() - 1);
   myTable.requestFocus();
 }
 @Nullable
 public Module getSelectedElement() {
   final int selectedRow = getSelectedElementRow();
   return selectedRow < 0 ? null : myTableModel.getModuleAt(selectedRow);
 }
 public void removeAllElements() {
   myTableModel.removeAllElements();
   myTable.getSelectionModel().clearSelection();
 }
 public void setElements(List<T> elements, boolean marked) {
   myTableModel.clear();
   myTableModel.addElements(elements, marked);
 }
 public void addModule(Module element, String dirName) {
   myTableModel.addElement(element, dirName);
   selectRow(myTableModel.getRowCount() - 1);
   myTable.requestFocus();
 }
 public void refresh(Module element) {
   final int row = myTableModel.getElementRow(element);
   if (row >= 0) {
     myTableModel.fireTableRowsUpdated(row, row);
   }
 }
 public int getElementCount() {
   return myTableModel.getRowCount();
 }
 public T getElementAt(int row) {
   return myTableModel.getElementAt(row);
 }
 public void clear() {
   myTableModel.clear();
   myElementToPropertiesMap.clear();
 }
 public void markElements(Collection<T> elements) {
   myTableModel.setMarked(getElementsRows(elements), true);
 }
 public Module getElementAt(int row) {
   return myTableModel.getModuleAt(row);
 }
 public void refresh() {
   myTableModel.fireTableDataChanged();
 }