use of javax.swing.border.Border in project intellij-community by JetBrains.
the class LightweightHint method setSize.
public void setSize(final Dimension size) {
if (myIsRealPopup && myPopup != null) {
// There is a possible case that a popup wraps target content component into other components which might have borders.
// That's why we can't just apply component's size to the whole popup. It needs to be adjusted before that.
JComponent popupContent = myPopup.getContent();
int widthExpand = 0;
int heightExpand = 0;
boolean adjustSize = false;
JComponent prev = myComponent;
for (Container c = myComponent.getParent(); c != null; c = c.getParent()) {
if (c == popupContent) {
adjustSize = true;
break;
}
if (c instanceof JComponent) {
Border border = ((JComponent) c).getBorder();
if (prev != null && border != null) {
Insets insets = border.getBorderInsets(prev);
widthExpand += insets.left + insets.right;
heightExpand += insets.top + insets.bottom;
}
prev = (JComponent) c;
} else {
prev = null;
}
}
Dimension sizeToUse = size;
if (adjustSize && (widthExpand != 0 || heightExpand != 0)) {
sizeToUse = new Dimension(size.width + widthExpand, size.height + heightExpand);
}
myPopup.setSize(sizeToUse);
} else if (!isAwtTooltip()) {
myComponent.setSize(size);
myComponent.revalidate();
myComponent.repaint();
}
}
use of javax.swing.border.Border in project intellij-community by JetBrains.
the class UIUtil method addBorder.
/**
* Adds the specified border to the specified component.
* If the component already has a border it will be preserved.
* If component or border is not specified nothing happens.
*
* @param component the component to which border added
* @param border the border to add to the component
*/
public static void addBorder(JComponent component, Border border) {
if (component != null && border != null) {
Border old = component.getBorder();
if (old != null) {
border = BorderFactory.createCompoundBorder(border, old);
}
component.setBorder(border);
}
}
use of javax.swing.border.Border in project intellij-community by JetBrains.
the class PluginManagerMain method init.
protected void init() {
GuiUtils.replaceJSplitPaneWithIDEASplitter(main);
HTMLEditorKit kit = new HTMLEditorKit();
StyleSheet sheet = kit.getStyleSheet();
// list-style-type: none;
sheet.addRule("ul {margin-left: 16px}");
myDescriptionTextArea.setEditorKit(kit);
myDescriptionTextArea.setEditable(false);
myDescriptionTextArea.addHyperlinkListener(new MyHyperlinkListener());
JScrollPane installedScrollPane = createTable();
myPluginHeaderPanel = new PluginHeaderPanel(this);
myHeader.setBackground(UIUtil.getTextFieldBackground());
myPluginHeaderPanel.getPanel().setBackground(UIUtil.getTextFieldBackground());
myPluginHeaderPanel.getPanel().setOpaque(true);
myHeader.add(myPluginHeaderPanel.getPanel(), BorderLayout.CENTER);
installTableActions();
myTablePanel.add(installedScrollPane, BorderLayout.CENTER);
UIUtil.applyStyle(UIUtil.ComponentStyle.SMALL, myPanelDescription);
myPanelDescription.setBorder(JBUI.Borders.emptyLeft(7));
final JPanel header = new JPanel(new BorderLayout()) {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
final Color bg = UIUtil.getTableBackground(false);
((Graphics2D) g).setPaint(new GradientPaint(0, 0, ColorUtil.shift(bg, 1.4), 0, getHeight(), ColorUtil.shift(bg, 0.9)));
g.fillRect(0, 0, getWidth(), getHeight());
}
};
header.setBorder(new CustomLineBorder(1, 1, 0, 1));
final JLabel mySortLabel = new JLabel();
mySortLabel.setForeground(UIUtil.getLabelDisabledForeground());
mySortLabel.setBorder(JBUI.Borders.empty(1, 1, 1, 5));
mySortLabel.setIcon(AllIcons.General.SplitDown);
mySortLabel.setHorizontalTextPosition(SwingConstants.LEADING);
header.add(mySortLabel, BorderLayout.EAST);
myTablePanel.add(header, BorderLayout.NORTH);
myToolbarPanel.setLayout(new BorderLayout());
myActionToolbar = ActionManager.getInstance().createActionToolbar("PluginManager", getActionGroup(true), true);
final JComponent component = myActionToolbar.getComponent();
myToolbarPanel.add(component, BorderLayout.CENTER);
myToolbarPanel.add(myFilter, BorderLayout.WEST);
new ClickListener() {
@Override
public boolean onClick(@NotNull MouseEvent event, int clickCount) {
JBPopupFactory.getInstance().createActionGroupPopup("Sort by:", createSortersGroup(), DataManager.getInstance().getDataContext(pluginTable), JBPopupFactory.ActionSelectionAid.SPEEDSEARCH, true).showUnderneathOf(mySortLabel);
return true;
}
}.installOn(mySortLabel);
final TableModelListener modelListener = new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
String text = "Sort by:";
if (pluginsModel.isSortByStatus()) {
text += " status,";
}
if (pluginsModel.isSortByRating()) {
text += " rating,";
}
if (pluginsModel.isSortByDownloads()) {
text += " downloads,";
}
if (pluginsModel.isSortByUpdated()) {
text += " updated,";
}
text += " name";
mySortLabel.setText(text);
}
};
pluginTable.getModel().addTableModelListener(modelListener);
modelListener.tableChanged(null);
myDescriptionScrollPane.setBackground(UIUtil.getTextFieldBackground());
Border border = new BorderUIResource.LineBorderUIResource(new JBColor(Gray._220, Gray._55), 1);
myInfoPanel.setBorder(border);
}
use of javax.swing.border.Border in project intellij-community by JetBrains.
the class DarculaButtonUI method paintIcon.
@Override
protected void paintIcon(Graphics g, JComponent c, Rectangle iconRect) {
Border border = c.getBorder();
if (border != null && isSquare(c)) {
int xOff = 1;
Insets ins = border.getBorderInsets(c);
int yOff = (ins.top + ins.bottom) / 4;
Rectangle iconRect2 = new Rectangle(iconRect);
iconRect2.x += xOff;
iconRect2.y += yOff;
super.paintIcon(g, c, iconRect2);
} else {
super.paintIcon(g, c, iconRect);
}
}
use of javax.swing.border.Border in project intellij-community by JetBrains.
the class MacIntelliJComboBoxUI method createEditor.
@Override
protected ComboBoxEditor createEditor() {
final ComboBoxEditor comboBoxEditor = new BasicComboBoxEditor.UIResource() {
@Override
protected JTextField createEditorComponent() {
return new JTextField() {
{
setOpaque(false);
setBorder(ourDefaultEditorBorder);
}
@Override
public Color getBackground() {
if (!isEnabled()) {
return Gray.xF8;
}
return super.getBackground();
}
public void setText(String s) {
if (getText().equals(s)) {
return;
}
super.setText(s);
}
@Override
public void setBorder(Border border) {
}
@Override
public Border getBorder() {
return ourDefaultEditorBorder;
}
@Override
public Dimension getPreferredSize() {
Dimension size = super.getPreferredSize();
return new Dimension(size.width, DEFAULT_ICON.getIconHeight() - 6);
}
};
}
};
if (comboBoxEditor.getEditorComponent() != null) {
comboBoxEditor.getEditorComponent().addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
process(e);
}
@Override
public void keyReleased(KeyEvent e) {
process(e);
}
private void process(KeyEvent e) {
final int code = e.getKeyCode();
if ((code == KeyEvent.VK_UP || code == KeyEvent.VK_DOWN) && e.getModifiers() == 0) {
comboBox.dispatchEvent(e);
}
}
});
comboBoxEditor.getEditorComponent().addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
update();
}
@Override
public void focusLost(FocusEvent e) {
update();
}
void update() {
if (comboBox != null) {
comboBox.revalidate();
comboBox.repaint();
}
}
});
}
return comboBoxEditor;
}
Aggregations