Search in sources :

Example 41 with Border

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();
    }
}
Also used : LineBorder(javax.swing.border.LineBorder) Border(javax.swing.border.Border) RelativePoint(com.intellij.ui.awt.RelativePoint)

Example 42 with Border

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);
    }
}
Also used : Border(javax.swing.border.Border) EmptyBorder(javax.swing.border.EmptyBorder) LineBorder(javax.swing.border.LineBorder)

Example 43 with 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);
}
Also used : MouseEvent(java.awt.event.MouseEvent) HTMLEditorKit(javax.swing.text.html.HTMLEditorKit) CustomLineBorder(com.intellij.ui.border.CustomLineBorder) StyleSheet(javax.swing.text.html.StyleSheet) Border(javax.swing.border.Border) CustomLineBorder(com.intellij.ui.border.CustomLineBorder)

Example 44 with 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);
    }
}
Also used : Border(javax.swing.border.Border)

Example 45 with Border

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;
}
Also used : KeyEvent(java.awt.event.KeyEvent) FocusAdapter(java.awt.event.FocusAdapter) KeyAdapter(java.awt.event.KeyAdapter) Border(javax.swing.border.Border) FocusEvent(java.awt.event.FocusEvent)

Aggregations

Border (javax.swing.border.Border)169 JPanel (javax.swing.JPanel)40 EmptyBorder (javax.swing.border.EmptyBorder)35 BoxLayout (javax.swing.BoxLayout)28 JLabel (javax.swing.JLabel)28 FlowLayout (java.awt.FlowLayout)24 Dimension (java.awt.Dimension)23 JScrollPane (javax.swing.JScrollPane)22 JButton (javax.swing.JButton)19 Container (java.awt.Container)18 CompoundBorder (javax.swing.border.CompoundBorder)17 BorderLayout (java.awt.BorderLayout)16 Insets (java.awt.Insets)16 ActionEvent (java.awt.event.ActionEvent)16 TitledBorder (javax.swing.border.TitledBorder)16 UIResource (javax.swing.plaf.UIResource)16 JTable (javax.swing.JTable)14 ActionListener (java.awt.event.ActionListener)13 LineBorder (javax.swing.border.LineBorder)13 TableColumnModel (javax.swing.table.TableColumnModel)13