Java源码示例:com.intellij.ui.ColoredTableCellRenderer

示例1
private ExtensionsTable() {
    setShowGrid(false);
    setShowVerticalLines(false);
    this.setCellSelectionEnabled(false);
    this.setRowSelectionAllowed(true);
    this.setSelectionMode(0);
    this.setTableHeader(null);
    setModel(new Model(new ArrayList<>()));
    TableColumn selectedColumn = columnModel.getColumn(0);
    TableUtil.setupCheckboxColumn(this, 0);
    selectedColumn.setCellRenderer(new BooleanTableCellRenderer());
    TableColumn extensionColumn = columnModel.getColumn(1);
    extensionColumn.setCellRenderer(new ColoredTableCellRenderer() {

        @Override
        protected void customizeCellRenderer(JTable table, @Nullable Object value, boolean b, boolean b1, int i, int i1) {
            QuarkusExtension extension = (QuarkusExtension) value;
            append(extension.getName(), new SimpleTextAttributes(SimpleTextAttributes.STYLE_PLAIN, null));
            append(" ");
            append(extension.asLabel(false), new SimpleTextAttributes(SimpleTextAttributes.STYLE_BOLD, null));
        }
    });
}
 
示例2
@Override
public @Nullable TableCellRenderer getRenderer(T settings) {
	return new ColoredTableCellRenderer() {
		@Override
		protected void customizeCellRenderer(JTable table, Object value,
											 boolean isSelected, boolean hasFocus, int row, int column) {
			if (!(value instanceof LatteXmlFileData.VendorResult)) {
				return;
			}

			LatteXmlFileData.VendorResult vendor = (LatteXmlFileData.VendorResult) value;
			if (vendor.vendor == LatteConfiguration.Vendor.OTHER) {
				append(vendor.vendorName, new SimpleTextAttributes(SimpleTextAttributes.STYLE_PLAIN, vendor.vendor.getColor()));
			} else {
				append(vendor.vendor.getName(), new SimpleTextAttributes(SimpleTextAttributes.STYLE_PLAIN, vendor.vendor.getColor()));
			}
		}
	};
}
 
示例3
@Override
public @Nullable TableCellRenderer getRenderer(T settings) {
	return new ColoredTableCellRenderer() {
		@Override
		protected void customizeCellRenderer(JTable table, Object value,
											 boolean isSelected, boolean hasFocus, int row, int column) {
			if (value == null) {
				return;
			}

			LattePhpType type = LattePhpType.create((String) value);
			if (type.hasUndefinedClass(project)) {
				append((String) value, new SimpleTextAttributes(Font.PLAIN, JBColor.RED));
			} else {
				append((String) value, new SimpleTextAttributes(Font.PLAIN, null));
			}
		}
	};
}
 
示例4
@Override
public TableCellRenderer doCreateRenderer(CSharpParameterTableModelItem cSharpParameterTableModelItem)
{
	return new ColoredTableCellRenderer()
	{
		@Override
		public void customizeCellRenderer(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
		{
			if(value == null)
			{
				return;
			}
			if(isSelected || hasFocus)
			{
				acquireState(table, true, false, row, column);
				getCellState().updateRenderer(this);
				setPaintFocusBorder(false);
			}
			append((String) value, new SimpleTextAttributes(Font.PLAIN, null));
		}
	};
}
 
示例5
@javax.annotation.Nullable
public Object getTagAt(final MouseEvent e) {
  // TODO[yole]: don't update renderer on every event, like it's done in TreeLinkMouseListener
  Object tag = null;
  JTable table = (JTable)e.getSource();
  int row = table.rowAtPoint(e.getPoint());
  int column = table.columnAtPoint(e.getPoint());
  if (row == -1 || column == -1) return null;
  TableCellRenderer cellRenderer = table.getCellRenderer(row, column);
  if (cellRenderer instanceof DualView.TableCellRendererWrapper) {
    cellRenderer = ((DualView.TableCellRendererWrapper) cellRenderer).getRenderer();
  }
  if (cellRenderer instanceof TreeTableView.CellRendererWrapper) {
    cellRenderer = ((TreeTableView.CellRendererWrapper) cellRenderer).getBaseRenderer();
  }
  if (cellRenderer instanceof ColoredTableCellRenderer) {
    final ColoredTableCellRenderer renderer = (ColoredTableCellRenderer)cellRenderer;
    tag = forColoredRenderer(e, table, row, column, renderer);
  } else {
    tag = tryGetTag(e, table, row, column);
  }
  return tag;
}
 
示例6
@Override
protected TableCellRenderer doCreateRenderer(CSharpParameterTableModelItem tableModelItem)
{
	return new ColoredTableCellRenderer()
	{
		@Override
		protected void customizeCellRenderer(JTable table, Object value, boolean selected, boolean hasFocus, int row, int column)
		{
			append(value == null ? "" : value.toString());
		}
	};
}
 
示例7
public static void appendTestStatusColorPresentation(final SMTestProxy proxy,
                                                     final ColoredTableCellRenderer renderer) {
  final String title = getTestStatusPresentation(proxy);

  final TestStateInfo.Magnitude info = proxy.getMagnitudeInfo();
  switch (info) {
    case COMPLETE_INDEX:
    case PASSED_INDEX:
      renderer.append(title, PASSED_ATTRIBUTES);
      break;
    case RUNNING_INDEX:
      renderer.append(title, SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES);
      break;
    case NOT_RUN_INDEX:
      renderer.append(title, SimpleTextAttributes.GRAYED_BOLD_ATTRIBUTES);
      break;
    case IGNORED_INDEX:
    case SKIPPED_INDEX:
      renderer.append(title, SimpleTextAttributes.EXCLUDED_ATTRIBUTES);
      break;
    case ERROR_INDEX:
    case FAILED_INDEX:
      renderer.append(title, DEFFECT_ATTRIBUTES);
      break;
    case TERMINATED_INDEX:
      renderer.append(title, TERMINATED_ATTRIBUTES);
      break;
  }
}
 
示例8
private Object forColoredRenderer(MouseEvent e, JTable table, int row, int column, ColoredTableCellRenderer renderer) {
  renderer.getTableCellRendererComponent(table, table.getValueAt(row, column), false, false, row, column);
  final Rectangle rc = table.getCellRect(row, column, false);
  int index = renderer.findFragmentAt(e.getPoint().x - rc.x);
  if (index >= 0) {
    return renderer.getFragmentTagAt(index);
  }
  return null;
}
 
示例9
@Override
protected boolean handleDefaultValue(VirtualFile file, ColoredTableCellRenderer renderer) {
  final Language language = TemplateDataLanguagePatterns.getInstance().getTemplateDataLanguageByFileName(file);
  if (language != null) {
    renderer.append(visualize(language), SimpleTextAttributes.GRAY_ITALIC_ATTRIBUTES);
    return true;
  }
  return false;
}
 
示例10
PerGroupDependencyTableModel(JBTable perGroupDependencyTable,
    @NotNull ProjectCreationRequest request, @NotNull DependencyGroup dependencyGroup,
    @NotNull Version bootVersion,
    @NotNull Map<DependencyGroup, List<Dependency>> filteredGroupAndDependencies) {
  this.perGroupDependencyTable = perGroupDependencyTable;
  this.request = request;
  this.dependencyGroup = dependencyGroup;
  this.bootVersion = bootVersion;
  this.filteredGroupAndDependencies = filteredGroupAndDependencies;
  reindex();

  perGroupDependencyTable.setModel(this);
  resetTableLookAndFeelToSingleSelect(perGroupDependencyTable);

  TableColumnModel columnModel = perGroupDependencyTable.getColumnModel();
  columnModel.setColumnMargin(0);
  TableColumn checkBoxColumn = columnModel.getColumn(CHECKBOX_COL_INDEX);
  TableUtil.setupCheckboxColumn(checkBoxColumn);
  checkBoxColumn.setCellRenderer(new BooleanTableCellRenderer());
  TableColumn dependencyColumn = columnModel.getColumn(DEPENDENCY_NAME_COL_INDEX);
  dependencyColumn.setCellRenderer(new ColoredTableCellRenderer() {
    @Override
    protected void customizeCellRenderer(JTable table, @Nullable Object value, boolean selected,
        boolean hasFocus, int row, int column) {
      if (value != null) {
        Dependency dependency = Dependency.class.cast(value);
        boolean selectable = isCellEditable(row, CHECKBOX_COL_INDEX);
        if (selectable) {
          append(dependency.getName());
        } else {
          append(dependency.getName(), GRAY_ATTRIBUTES);
        }
      }
      // Enable search highlighting. This in conjunction with TableSpeedSearch(below) enables type to search capability of intellij
      applySpeedSearchHighlighting(table, this, true, selected);
    }
  });

  new TableSpeedSearch(perGroupDependencyTable, value -> {
    if (value instanceof Dependency) {
      return Dependency.class.cast(value).getName();
    }
    return "";
  });

  // Add listeners

  // Allow user to select via keyboard
  perGroupDependencyTable.getActionMap().put("select_deselect_dependency", new AbstractAction() {
    public void actionPerformed(ActionEvent e) {
      toggleSelectionIfApplicable(perGroupDependencyTable.getSelectedRow());
    }
  });
  perGroupDependencyTable.getInputMap()
      .put(getKeyStroke(VK_SPACE, 0), "select_deselect_dependency");
  // Allow user to toggle via double click
  perGroupDependencyTable.addMouseListener(new MouseAdapter() {
    @Override
    public void mouseClicked(MouseEvent event) {
      if (event.getButton() == BUTTON1) {
        int columIndex = perGroupDependencyTable.columnAtPoint(event.getPoint());
        if (columIndex == DEPENDENCY_NAME_COL_INDEX) {
          int rowIndex = perGroupDependencyTable.rowAtPoint(event.getPoint());
          if (event.getClickCount() == 2) {
            toggleSelectionIfApplicable(rowIndex);
          }
        }
      }
    }
  });

  perGroupDependencyTable.getSelectionModel().addListSelectionListener(e -> {
    if (!e.getValueIsAdjusting()) {
      int selectedRow = perGroupDependencyTable.getSelectedRow();
      if (selectedRow != -1) {
        selectionListeners
            .forEach(listener -> listener.onDependencySelected(getDependencyAt(selectedRow)));
      } else {
        selectionListeners.forEach(listener -> listener.onDependencySelected(null));
      }
    }
  });
}
 
示例11
public void renderValue(ColoredTableCellRenderer cellRenderer, boolean isNodeExpanded) {
    if (!isNodeExpanded) {
        cellRenderer.append(getValueAndAbbreviateIfNecessary(), valueTextAttributes);
    }
}
 
示例12
public void renderValue(ColoredTableCellRenderer cellRenderer, boolean isNodeExpanded) {
    if (!isNodeExpanded) {
        cellRenderer.append(getFormattedValue(), valueTextAttributes);
    }
}
 
示例13
public void renderValue(ColoredTableCellRenderer cellRenderer, boolean isNodeExpanded) {
}
 
示例14
@Override
public void renderValue(ColoredTableCellRenderer cellRenderer, boolean isNodeExpanded) {
    if (!isNodeExpanded) {
        cellRenderer.append(getFormattedValue(), valueTextAttributes);
    }
}
 
示例15
@Override
public void renderValue(ColoredTableCellRenderer cellRenderer, boolean isNodeExpanded) {
    if (!isNodeExpanded) {
        cellRenderer.append(getFormattedValue(), valueTextAttributes);
    }
}
 
示例16
public void renderValue(ColoredTableCellRenderer cellRenderer, boolean isNodeExpanded) {
    if (!isNodeExpanded) {
        cellRenderer.append(getFormattedValue(), valueTextAttributes);
    }
}
 
示例17
public void renderValue(ColoredTableCellRenderer cellRenderer, boolean isNodeExpanded) {
    if (!isNodeExpanded) {
        cellRenderer.append(getValueAndAbbreviateIfNecessary(), valueTextAttributes);
    }
}
 
示例18
public void renderValue(ColoredTableCellRenderer cellRenderer, boolean isNodeExpanded) {
}
 
示例19
public static void appendSuiteStatusColorPresentation(final SMTestProxy proxy,
                                                      final ColoredTableCellRenderer renderer) {
  int passedCount = 0;
  int errorsCount = 0;
  int failedCount = 0;
  int ignoredCount = 0;

  if (proxy.isLeaf()) {
    // If suite is empty show <no tests> label and exit from method
    renderer.append(RESULTS_NO_TESTS, proxy.wasLaunched() ? PASSED_ATTRIBUTES : DEFFECT_ATTRIBUTES);
    return;
  }

  final List<SMTestProxy> allTestCases = proxy.getAllTests();
  for (SMTestProxy testOrSuite : allTestCases) {
    // we should ignore test suites
    if (testOrSuite.isSuite()) {
      continue;
    }
    // if test check it state
    switch (testOrSuite.getMagnitudeInfo()) {
      case COMPLETE_INDEX:
      case PASSED_INDEX:
        passedCount++;
        break;
      case ERROR_INDEX:
        errorsCount++;
        break;
      case FAILED_INDEX:
        failedCount++;
        break;
      case IGNORED_INDEX:
      case SKIPPED_INDEX:
        ignoredCount++;
        break;
      case NOT_RUN_INDEX:
      case TERMINATED_INDEX:
      case RUNNING_INDEX:
        //Do nothing
        break;
    }
  }

  final String separator = " ";

  if (failedCount > 0) {
    renderer.append(SMTestsRunnerBundle.message(
            "sm.test.runner.ui.tabs.statistics.columns.results.count.msg.failed",
            failedCount) + separator,
                    DEFFECT_ATTRIBUTES);
  }

  if (errorsCount > 0) {
    renderer.append(SMTestsRunnerBundle.message(
            "sm.test.runner.ui.tabs.statistics.columns.results.count.msg.errors",
            errorsCount) + separator,
                    DEFFECT_ATTRIBUTES);
  }

  if (ignoredCount > 0) {
    renderer.append(SMTestsRunnerBundle.message(
            "sm.test.runner.ui.tabs.statistics.columns.results.count.msg.ignored",
            ignoredCount) + separator,
                    SimpleTextAttributes.GRAYED_BOLD_ATTRIBUTES);
  }

  if (passedCount > 0) {
    renderer.append(SMTestsRunnerBundle.message(
            "sm.test.runner.ui.tabs.statistics.columns.results.count.msg.passed",
            passedCount),
                    PASSED_ATTRIBUTES);
  }
}
 
示例20
protected boolean handleDefaultValue(VirtualFile file, ColoredTableCellRenderer renderer) {
  return false;
}
 
示例21
@Override
public void renderValue(ColoredTableCellRenderer cellRenderer, boolean isNodeExpanded) {

}
 
示例22
@Override
public void renderValue(ColoredTableCellRenderer cellRenderer, boolean isNodeExpanded) {

}
 
示例23
void renderValue(ColoredTableCellRenderer cellRenderer, boolean isNodeExpanded);