use of com.intellij.ui.SimpleTextAttributes in project intellij-community by JetBrains.
the class StructureNodeRenderer method forNodeDescriptorInTree.
public static CellAppearanceEx forNodeDescriptorInTree(Object node, boolean expanded) {
NodeDescriptor descriptor = getNodeDescriptor(node);
if (descriptor == null)
return FileAppearanceService.getInstance().empty();
String name = descriptor.toString();
Object psiElement = descriptor.getElement();
ModifiableCellAppearanceEx result;
if (psiElement instanceof PsiElement && !((PsiElement) psiElement).isValid()) {
result = CompositeAppearance.single(name);
} else {
PsiClass psiClass = getContainingClass(psiElement);
if (isInheritedMember(node, psiClass) && psiClass != null) {
CompositeAppearance.DequeEnd ending = new CompositeAppearance().getEnding();
ending.addText(name, applyDeprecation(psiElement, SimpleTextAttributes.DARK_TEXT));
ending.addComment(psiClass.getName(), applyDeprecation(psiClass, SimpleTextAttributes.GRAY_ATTRIBUTES));
result = ending.getAppearance();
} else {
SimpleTextAttributes textAttributes = applyDeprecation(psiElement, SimpleTextAttributes.REGULAR_ATTRIBUTES);
result = CompositeAppearance.single(name, textAttributes);
}
}
result.setIcon(descriptor.getIcon());
return result;
}
use of com.intellij.ui.SimpleTextAttributes in project intellij-community by JetBrains.
the class FQNameCellRenderer method getListCellRendererComponent.
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
clear();
if (value instanceof PsiClass) {
PsiClass aClass = (PsiClass) value;
setIcon(aClass.getIcon(0));
if (aClass.getQualifiedName() != null) {
SimpleTextAttributes attributes;
if (aClass.isDeprecated()) {
attributes = new SimpleTextAttributes(SimpleTextAttributes.STYLE_STRIKEOUT, null);
} else {
attributes = SimpleTextAttributes.REGULAR_ATTRIBUTES;
}
append(aClass.getQualifiedName(), attributes);
}
} else {
LOG.assertTrue(value instanceof String);
String qName = (String) value;
append(qName, SimpleTextAttributes.REGULAR_ATTRIBUTES);
setIcon(AllIcons.Nodes.Static);
}
setFont(FONT);
if (isSelected) {
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
} else {
setBackground(list.getBackground());
setForeground(list.getForeground());
}
return this;
}
use of com.intellij.ui.SimpleTextAttributes in project intellij-community by JetBrains.
the class FileRenderer method customize.
protected void customize(SimpleColoredComponent renderer, Object value, boolean selected, boolean focused) {
int style = SimpleTextAttributes.STYLE_PLAIN;
Color color = null;
Icon icon = null;
String name = null;
String comment = null;
boolean hidden = false;
boolean valid = true;
if (value instanceof FileNode) {
FileNode node = (FileNode) value;
icon = node.getIcon();
name = node.getName();
comment = node.getComment();
hidden = node.isHidden();
valid = node.isValid();
} else if (value instanceof VirtualFile) {
VirtualFile file = (VirtualFile) value;
name = file.getName();
hidden = isFileHidden(file);
valid = file.isValid();
} else if (value != null) {
name = value.toString();
color = GRAYED;
}
if (!valid)
style |= SimpleTextAttributes.STYLE_STRIKEOUT;
if (hidden)
color = HIDDEN;
renderer.setIcon(!hidden || icon == null ? icon : getTransparentIcon(icon));
SimpleTextAttributes attributes = new SimpleTextAttributes(style, color);
if (name != null)
renderer.append(name, attributes);
if (comment != null)
renderer.append(comment, attributes);
}
use of com.intellij.ui.SimpleTextAttributes in project intellij-community by JetBrains.
the class JBTabsDemo method main.
public static void main(String[] args) {
System.out.println("JBTabs.main");
IconLoader.activate();
final JFrame frame = new JFrame();
frame.getContentPane().setLayout(new BorderLayout(0, 0));
final int[] count = new int[1];
final JBTabsImpl tabs = new JBTabsImpl(null, ActionManager.getInstance(), null, Disposer.newDisposable());
tabs.setTestMode(true);
//final JPanel flow = new JPanel(new FlowLayout(FlowLayout.CENTER));
//frame.getContentPane().add(flow);
//flow.add(tabs.getComponent());
frame.getContentPane().add(tabs.getComponent(), BorderLayout.CENTER);
JPanel south = new JPanel(new FlowLayout());
south.setOpaque(true);
south.setBackground(Color.white);
final JComboBox pos = new JComboBox(new Object[] { JBTabsPosition.top, JBTabsPosition.left, JBTabsPosition.right, JBTabsPosition.bottom });
pos.setSelectedIndex(0);
south.add(pos);
pos.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
final JBTabsPosition p = (JBTabsPosition) pos.getSelectedItem();
if (p != null) {
tabs.getPresentation().setTabsPosition(p);
}
}
});
final JCheckBox bb = new JCheckBox("Buffered", true);
bb.addItemListener(new ItemListener() {
public void itemStateChanged(final ItemEvent e) {
tabs.setUseBufferedPaint(bb.isSelected());
}
});
south.add(bb);
final JCheckBox f = new JCheckBox("Focused");
f.addItemListener(new ItemListener() {
public void itemStateChanged(final ItemEvent e) {
tabs.setFocused(f.isSelected());
}
});
south.add(f);
final JCheckBox v = new JCheckBox("Vertical");
v.addItemListener(new ItemListener() {
public void itemStateChanged(final ItemEvent e) {
tabs.setSideComponentVertical(v.isSelected());
}
});
south.add(v);
final JCheckBox row = new JCheckBox("Single row", true);
row.addItemListener(new ItemListener() {
public void itemStateChanged(final ItemEvent e) {
tabs.setSingleRow(row.isSelected());
}
});
south.add(row);
final JCheckBox ghosts = new JCheckBox("Ghosts always visible", false);
ghosts.addItemListener(new ItemListener() {
public void itemStateChanged(final ItemEvent e) {
tabs.setGhostsAlwaysVisible(ghosts.isSelected());
}
});
south.add(ghosts);
final JCheckBox stealth = new JCheckBox("Stealth tab", tabs.isStealthTabMode());
stealth.addItemListener(new ItemListener() {
public void itemStateChanged(final ItemEvent e) {
tabs.setStealthTabMode(stealth.isSelected());
}
});
south.add(stealth);
final JCheckBox hide = new JCheckBox("Hide tabs", tabs.isHideTabs());
hide.addItemListener(new ItemListener() {
public void itemStateChanged(final ItemEvent e) {
tabs.setHideTabs(hide.isSelected());
}
});
south.add(hide);
frame.getContentPane().add(south, BorderLayout.SOUTH);
tabs.addListener(new TabsListener.Adapter() {
public void selectionChanged(final TabInfo oldSelection, final TabInfo newSelection) {
System.out.println("TabsWithActions.selectionChanged old=" + oldSelection + " new=" + newSelection);
}
});
final JTree someTree = new Tree() {
public void addNotify() {
//To change body of overridden methods use File | Settings | File Templates.
super.addNotify();
System.out.println("JBTabs.addNotify");
}
public void removeNotify() {
System.out.println("JBTabs.removeNotify");
//To change body of overridden methods use File | Settings | File Templates.
super.removeNotify();
}
};
//someTree.setBorder(new LineBorder(Color.cyan));
tabs.addTab(new TabInfo(someTree)).setText("Tree1").setActions(new DefaultActionGroup(), null).setIcon(AllIcons.Debugger.Frame);
final JTree component = new Tree();
final TabInfo toAnimate1 = new TabInfo(component);
//toAnimate1.setIcon(IconLoader.getIcon("/debugger/console.png"));
final JCheckBox attract1 = new JCheckBox("Attract 1");
attract1.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
if (attract1.isSelected()) {
toAnimate1.fireAlert();
} else {
toAnimate1.stopAlerting();
}
}
});
south.add(attract1);
final JCheckBox hide1 = new JCheckBox("Hide 1", toAnimate1.isHidden());
hide1.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
toAnimate1.setHidden(!toAnimate1.isHidden());
}
});
south.add(hide1);
final JCheckBox block = new JCheckBox("Block", false);
block.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
tabs.setPaintBlocked(!block.isSelected(), true);
}
});
south.add(block);
final JCheckBox fill = new JCheckBox("Tab fill in", true);
fill.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
tabs.getPresentation().setActiveTabFillIn(fill.isSelected() ? Color.white : null);
}
});
south.add(fill);
final JButton refire = new JButton("Re-fire attraction");
refire.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
toAnimate1.fireAlert();
}
});
south.add(refire);
final JEditorPane text = new JEditorPane();
text.setEditorKit(new HTMLEditorKit());
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < 50; i++) {
buffer.append("1234567890abcdefghijklmnopqrstv1234567890abcdefghijklmnopqrstv1234567890abcdefghijklmnopqrstv<br>");
}
text.setText(buffer.toString());
final JLabel tb = new JLabel("Side comp");
tb.setBorder(new LineBorder(Color.red));
tabs.addTab(new TabInfo(ScrollPaneFactory.createScrollPane(text)).setSideComponent(tb)).setText("Text text text");
tabs.addTab(toAnimate1).append("Tree2", new SimpleTextAttributes(SimpleTextAttributes.STYLE_WAVED, Color.black, Color.red));
tabs.addTab(new TabInfo(new JTable())).setText("Table 1").setActions(new DefaultActionGroup(), null);
tabs.addTab(new TabInfo(new JTable())).setText("Table 2").setActions(new DefaultActionGroup(), null);
tabs.addTab(new TabInfo(new JTable())).setText("Table 3").setActions(new DefaultActionGroup(), null);
tabs.addTab(new TabInfo(new JTable())).setText("Table 4").setActions(new DefaultActionGroup(), null);
tabs.addTab(new TabInfo(new JTable())).setText("Table 5").setActions(new DefaultActionGroup(), null);
tabs.addTab(new TabInfo(new JTable())).setText("Table 6").setActions(new DefaultActionGroup(), null);
tabs.addTab(new TabInfo(new JTable())).setText("Table 7").setActions(new DefaultActionGroup(), null);
tabs.addTab(new TabInfo(new JTable())).setText("Table 8").setActions(new DefaultActionGroup(), null);
tabs.addTab(new TabInfo(new JTable())).setText("Table 9").setActions(new DefaultActionGroup(), null);
//tabs.getComponent().setBorder(new EmptyBorder(5, 5, 5, 5));
tabs.setTabSidePaintBorder(5);
tabs.setPaintBorder(1, 1, 1, 1);
tabs.getPresentation().setActiveTabFillIn(Color.white);
tabs.setGhostsAlwaysVisible(true);
//tabs.setBorder(new LineBorder(Color.blue, 5));
tabs.setBorder(new EmptyBorder(30, 30, 30, 30));
tabs.setUiDecorator(new UiDecorator() {
public UiDecoration getDecoration() {
return new UiDecoration(null, new Insets(0, -1, 0, -1));
}
});
tabs.setStealthTabMode(true);
frame.setBounds(1400, 200, 1000, 800);
frame.show();
}
use of com.intellij.ui.SimpleTextAttributes in project intellij-community by JetBrains.
the class SearchUtil method appendFragments.
public static void appendFragments(String filter, String text, @SimpleTextAttributes.StyleAttributeConstant int style, final Color foreground, final Color background, final SimpleColoredComponent textRenderer) {
if (text == null)
return;
if (filter == null || filter.length() == 0) {
textRenderer.append(text, new SimpleTextAttributes(background, foreground, JBColor.RED, style));
} else {
//markup
final HashSet<String> quoted = new HashSet<>();
filter = processFilter(quoteStrictOccurrences(text, filter), quoted);
final TreeMap<Integer, String> indx = new TreeMap<>();
for (String stripped : quoted) {
int beg = 0;
int idx;
while ((idx = StringUtil.indexOfIgnoreCase(text, stripped, beg)) != -1) {
indx.put(idx, text.substring(idx, idx + stripped.length()));
beg = idx + stripped.length();
}
}
final List<String> selectedWords = new ArrayList<>();
int pos = 0;
for (Integer index : indx.keySet()) {
final String stripped = indx.get(index);
final int start = index.intValue();
if (pos > start) {
final String highlighted = selectedWords.get(selectedWords.size() - 1);
if (highlighted.length() < stripped.length()) {
selectedWords.remove(highlighted);
} else {
continue;
}
}
appendSelectedWords(text, selectedWords, pos, start, filter);
selectedWords.add(stripped);
pos = start + stripped.length();
}
appendSelectedWords(text, selectedWords, pos, text.length(), filter);
int idx = 0;
for (String word : selectedWords) {
text = text.substring(idx);
final String before = text.substring(0, text.indexOf(word));
if (before.length() > 0)
textRenderer.append(before, new SimpleTextAttributes(background, foreground, null, style));
idx = text.indexOf(word) + word.length();
textRenderer.append(text.substring(idx - word.length(), idx), new SimpleTextAttributes(background, foreground, null, style | SimpleTextAttributes.STYLE_SEARCH_MATCH));
}
final String after = text.substring(idx, text.length());
if (after.length() > 0)
textRenderer.append(after, new SimpleTextAttributes(background, foreground, null, style));
}
}
Aggregations