use of com.intellij.ui.SimpleColoredText in project intellij-community by JetBrains.
the class XValueHint method evaluateAndShowHint.
@Override
protected void evaluateAndShowHint() {
myEvaluator.evaluate(myExpression, new XEvaluationCallbackBase() {
@Override
public void evaluated(@NotNull final XValue result) {
result.computePresentation(new XValueNodePresentationConfigurator.ConfigurableXValueNodeImpl() {
private XFullValueEvaluator myFullValueEvaluator;
private boolean myShown = false;
@Override
public void applyPresentation(@Nullable Icon icon, @NotNull XValuePresentation valuePresenter, boolean hasChildren) {
if (isHintHidden()) {
return;
}
SimpleColoredText text = new SimpleColoredText();
text.append(StringUtil.trimMiddle(myValueName, 200), XDebuggerUIConstants.VALUE_NAME_ATTRIBUTES);
XValueNodeImpl.buildText(valuePresenter, text);
if (!hasChildren) {
SimpleColoredComponent component = HintUtil.createInformationComponent();
text.appendToComponent(component);
if (myFullValueEvaluator != null) {
component.append(myFullValueEvaluator.getLinkText(), XDebuggerTreeNodeHyperlink.TEXT_ATTRIBUTES, (Consumer<MouseEvent>) event -> DebuggerUIUtil.showValuePopup(myFullValueEvaluator, event, getProject(), getEditor()));
LinkMouseListenerBase.installSingleTagOn(component);
}
showHint(component);
} else if (getType() == ValueHintType.MOUSE_CLICK_HINT) {
if (!myShown) {
showTree(result);
}
} else {
if (getType() == ValueHintType.MOUSE_OVER_HINT) {
text.insert(0, "(" + KeymapUtil.getFirstKeyboardShortcutText("ShowErrorDescription") + ") ", SimpleTextAttributes.GRAYED_ATTRIBUTES);
}
JComponent component = createExpandableHintComponent(text, () -> showTree(result));
showHint(component);
}
myShown = true;
}
@Override
public void setFullValueEvaluator(@NotNull XFullValueEvaluator fullValueEvaluator) {
myFullValueEvaluator = fullValueEvaluator;
}
@Override
public boolean isObsolete() {
return isHintHidden();
}
}, XValuePlace.TOOLTIP);
}
@Override
public void errorOccurred(@NotNull final String errorMessage) {
if (getType() == ValueHintType.MOUSE_CLICK_HINT) {
ApplicationManager.getApplication().invokeLater(() -> showHint(HintUtil.createErrorLabel(errorMessage)));
}
LOG.debug("Cannot evaluate '" + myExpression + "':" + errorMessage);
}
}, myExpressionPosition);
}
use of com.intellij.ui.SimpleColoredText in project android by JetBrains.
the class DeviceRendererTest method deviceNameRendering2.
@Test
public void deviceNameRendering2() throws Exception {
String serial = "123";
IDevice d = createDevice(true, "Avdname", "google", "nexus 4", "4.2", "17", serial, IDevice.DeviceState.BOOTLOADER);
SimpleColoredText target = new SimpleColoredText();
DeviceRenderer.renderDeviceName(d, target);
String name = target.toString();
assertFalse(StringUtil.containsIgnoreCase(name, "Nexus 4"));
assertTrue(StringUtil.containsIgnoreCase(name, "Avdname"));
assertTrue(StringUtil.containsIgnoreCase(name, IDevice.DeviceState.BOOTLOADER.toString()));
assertTrue(StringUtil.containsIgnoreCase(name, serial));
}
use of com.intellij.ui.SimpleColoredText in project android by JetBrains.
the class DeviceRendererTest method deviceNameRendering1.
@Test
public void deviceNameRendering1() throws Exception {
String serial = "123";
IDevice d = createDevice(false, null, "google", "nexus 4", "4.2", "17", serial, IDevice.DeviceState.ONLINE);
SimpleColoredText target = new SimpleColoredText();
DeviceRenderer.renderDeviceName(d, target);
String name = target.toString();
assertEquals("Google Nexus 4 Android 4.2, API 17", name);
// status should be shown only if !online
assertFalse(StringUtil.containsIgnoreCase(name, IDevice.DeviceState.ONLINE.toString()));
// serial should be shown only if !online
assertFalse(StringUtil.containsIgnoreCase(name, serial));
}
use of com.intellij.ui.SimpleColoredText in project intellij-community by JetBrains.
the class FocusDebugger method propertyChange.
@Override
public void propertyChange(PropertyChangeEvent evt) {
final Object newValue = evt.getNewValue();
final Object oldValue = evt.getOldValue();
boolean affectsDebugger = false;
if (newValue instanceof Component && isInsideDebuggerDialog((Component) newValue)) {
affectsDebugger |= true;
}
if (oldValue instanceof Component && isInsideDebuggerDialog((Component) oldValue)) {
affectsDebugger |= true;
}
final SimpleColoredText text = new SimpleColoredText();
text.append(evt.getPropertyName(), maybeGrayOut(new SimpleTextAttributes(SimpleTextAttributes.STYLE_UNDERLINE, null), affectsDebugger));
text.append(" newValue=", maybeGrayOut(SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES, affectsDebugger));
text.append(evt.getNewValue() + "", maybeGrayOut(SimpleTextAttributes.REGULAR_ATTRIBUTES, affectsDebugger));
text.append(" oldValue=" + evt.getOldValue(), maybeGrayOut(SimpleTextAttributes.REGULAR_ATTRIBUTES, affectsDebugger));
myLogModel.addElement(new FocusElement(text, new Throwable()));
SwingUtilities.invokeLater(() -> {
if (myLog != null && myLog.isShowing()) {
final int h = myLog.getFixedCellHeight();
myLog.scrollRectToVisible(new Rectangle(0, myLog.getPreferredSize().height - h, myLog.getWidth(), h));
if (myLog.getModel().getSize() > 0) {
myLog.setSelectedIndex(myLog.getModel().getSize() - 1);
}
}
});
}
use of com.intellij.ui.SimpleColoredText in project intellij-plugins by JetBrains.
the class BCCombo method initCombo.
private void initCombo() {
setMinimumSize(new Dimension(150, getMinimumSize().height));
final Collection<FlexBuildConfiguration> allConfigs = new ArrayList<>();
final Module[] modules = ModuleManager.getInstance(myProject).getModules();
mySingleModuleProject = modules.length == 1;
for (final Module module : modules) {
if (ModuleType.get(module) instanceof FlexModuleType) {
for (final FlexBuildConfiguration config : FlexBuildConfigurationManager.getInstance(module).getBuildConfigurations()) {
allConfigs.add(config);
myBCToModuleMap.put(config, module);
}
}
}
myAllConfigs = allConfigs.toArray(new FlexBuildConfiguration[allConfigs.size()]);
setRenderer(new ColoredListCellRendererWrapper() {
@Override
protected void doCustomize(final JList list, final Object value, final int index, final boolean selected, final boolean hasFocus) {
if (value instanceof Pair) {
final String moduleName = (String) ((Pair) value).first;
final String configName = (String) ((Pair) value).second;
//setIcon(PlatformIcons.ERROR_INTRODUCTION_ICON);
if (moduleName.isEmpty() || configName.isEmpty()) {
append(new SimpleColoredText("[none]", SimpleTextAttributes.ERROR_ATTRIBUTES));
} else {
append(BCUtils.renderMissingBuildConfiguration(configName, moduleName));
}
} else {
assert value instanceof FlexBuildConfiguration : value;
final FlexBuildConfiguration bc = (FlexBuildConfiguration) value;
setIcon(bc.getIcon());
append(BCUtils.renderBuildConfiguration(bc, mySingleModuleProject ? null : myBCToModuleMap.get(bc).getName()));
}
}
});
addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
// remove invalid entry
final Object selectedItem = getSelectedItem();
final Object firstItem = getItemAt(0);
if (selectedItem instanceof FlexBuildConfiguration && !(firstItem instanceof FlexBuildConfiguration)) {
setModel(new DefaultComboBoxModel(myAllConfigs));
setSelectedItem(selectedItem);
}
}
});
}
Aggregations