public MacRenderer() { renderer = new JLabel(); renderer.setOpaque(Preferences.getBoolean("jeti", "bmw", true)); renderer.setBackground(UIManager.getColor("Tree.selectionBackground")); renderer.setForeground(UIManager.getColor("Tree.textForeground")); renderer.setFont(UIManager.getFont("Tree.font")); }
public void paintIcon(Component c, Graphics g, int x, int y) { Color oldColor = g.getColor(); boolean enabled = c.isEnabled(); boolean pressed = false; if (c instanceof JButton) { pressed = ((JButton) c).getModel().isPressed(); } int i = 0; int j = 0; int w = Math.min(width, c.getWidth()); int h = c.getHeight(); if (h < 5 || w < 5) { // not enough space for the arrow g.setColor(oldColor); return; } int size = Math.min(h / 2, w / 2); size = Math.max(size, 2); int mid = size / 2; x = ((w - size) / 2); // center arrow y = (h - size) / 2; // center arrow if (pressed) { x++; y++; } g.translate(x, y); // move the x,y origin in the graphic if (enabled) g.setColor(UIManager.getColor("controlDkShadow")); // NOT // LOCALIZABLE else g.setColor(UIManager.getColor("controlShadow")); // NOT // LOCALIZABLE if (!enabled) { g.translate(1, 1); g.setColor(UIManager.getColor("controlLtHighlight")); // NOT // LOCALIZABLE for (i = size - 1; i >= 0; i--) { g.drawLine(mid - i, j, mid + i, j); j++; } g.translate(-1, -1); g.setColor(UIManager.getColor("controlShadow")); // NOT // LOCALIZABLE } j = 0; for (i = size - 1; i >= 0; i--) { g.drawLine(mid - i, j, mid + i, j); j++; } g.translate(-x, -y); g.setColor(oldColor); }
protected void installDefaults() { LookAndFeel.installProperty(progressBar, "opaque", Boolean.TRUE); LookAndFeel.installBorder(progressBar, "ProgressBar.border"); LookAndFeel.installColorsAndFont( progressBar, "ProgressBar.background", "ProgressBar.foreground", "ProgressBar.font"); cellLength = UIManager.getInt("ProgressBar.cellLength"); if (cellLength == 0) cellLength = 1; cellSpacing = UIManager.getInt("ProgressBar.cellSpacing"); selectionForeground = UIManager.getColor("ProgressBar.selectionForeground"); selectionBackground = UIManager.getColor("ProgressBar.selectionBackground"); }
private static Color getButtonBackgroundColor() { Color color; if (isUsingDarculaUIFlavor()) { color = UIManager.getColor("ComboBox.darcula.arrowFillColor"); } else { color = UIManager.getColor("ComboBox.buttonBackground"); } return color == null ? UIUtil.getControlColor() : color; }
public void paintComponent(Graphics g) { super.paintComponent(g); if (frame.isSelected()) { g.setColor(UIManager.getColor("activeCaptionText")); } else { g.setColor(UIManager.getColor("inactiveCaptionText")); } Dimension d = getSize(); String frameTitle = frame.getTitle(); if (frameTitle != null) { MotifGraphicsUtils.drawStringInRect( frame, g, frameTitle, 0, 0, d.width, d.height, SwingConstants.CENTER); } }
public MyRenderComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) { super(); this.table = table; this.col = col; if (value != null) { setText(value.toString()); } else { setText(""); } setOpaque(false); setFont(UIManager.getFont("TableHeader.font")); setForeground(UIManager.getColor("TableHeader.foreground")); setHorizontalAlignment(JLabel.CENTER); setHorizontalTextPosition(SwingConstants.LEADING); setBorder(UIManager.getBorder("TableHeader.cellBorder")); if ((JTattooUtilities.getJavaVersion() >= 1.6) && (UIManager.getLookAndFeel() instanceof AbstractLookAndFeel)) { RowSorter rowSorter = table == null ? null : table.getRowSorter(); List keyList = rowSorter == null ? null : rowSorter.getSortKeys(); if ((keyList != null) && (keyList.size() > 0)) { RowSorter.SortKey sortKey = (RowSorter.SortKey) keyList.get(0); if (sortKey.getColumn() == table.convertColumnIndexToModel(col)) { AbstractIconFactory iconFactory = ((AbstractLookAndFeel) UIManager.getLookAndFeel()).getIconFactory(); if (sortKey.getSortOrder().equals(SortOrder.ASCENDING)) { setIcon(iconFactory.getUpArrowIcon()); } else if (sortKey.getSortOrder().equals(SortOrder.DESCENDING)) { setIcon(iconFactory.getDownArrowIcon()); } } } } gv = ColorHelper.getGrayValue(AbstractLookAndFeel.getTheme().getRolloverColor()); }
public FocusBorder(Component comp) { this.comp = comp; comp.addFocusListener(this); // This is the best guess for a L&F specific color focusColor = UIManager.getColor("TabbedPane.focus"); }
public void paintCurrentValue(Graphics g, Rectangle bounds, boolean hasFocus) { ListCellRenderer renderer = comboBox.getRenderer(); Component c; Dimension d; c = renderer.getListCellRendererComponent( listBox, comboBox.getSelectedItem(), -1, false, false); c.setFont(comboBox.getFont()); if (comboBox.isEnabled()) { c.setForeground(comboBox.getForeground()); c.setBackground(comboBox.getBackground()); } else { c.setForeground(UIManager.getColor("ComboBox.disabledForeground")); c.setBackground(UIManager.getColor("ComboBox.disabledBackground")); } d = c.getPreferredSize(); currentValuePane.paintComponent(g, c, comboBox, bounds.x, bounds.y, bounds.width, d.height); }
Title(String title) { super(); setText(title); setHorizontalAlignment(SwingConstants.CENTER); setBorder( BorderFactory.createBevelBorder( BevelBorder.RAISED, UIManager.getColor("activeCaptionBorder"), UIManager.getColor("inactiveCaptionBorder"))); // Forward mouse events to titlebar for moves. addMouseMotionListener( new MouseMotionListener() { public void mouseDragged(MouseEvent e) { forwardEventToParent(e); } public void mouseMoved(MouseEvent e) { forwardEventToParent(e); } }); addMouseListener( new MouseListener() { public void mouseClicked(MouseEvent e) { forwardEventToParent(e); } public void mousePressed(MouseEvent e) { forwardEventToParent(e); } public void mouseReleased(MouseEvent e) { forwardEventToParent(e); } public void mouseEntered(MouseEvent e) { forwardEventToParent(e); } public void mouseExited(MouseEvent e) { forwardEventToParent(e); } }); }
public void installUI(JComponent c) { super.installUI(c); arrowIcon = new MotifComboBoxArrowIcon( UIManager.getColor("controlHighlight"), UIManager.getColor("controlShadow"), UIManager.getColor("control")); Runnable initCode = new Runnable() { public void run() { if (motifGetEditor() != null) { motifGetEditor().setBackground(UIManager.getColor("text")); } } }; SwingUtilities.invokeLater(initCode); }
public void paint(Graphics g, JComponent c) { boolean hasFocus = comboBox.hasFocus(); Rectangle r; if (comboBox.isEnabled()) { g.setColor(comboBox.getBackground()); } else { g.setColor(UIManager.getColor("ComboBox.disabledBackground")); } g.fillRect(0, 0, c.getWidth(), c.getHeight()); if (!comboBox.isEditable()) { r = rectangleForCurrentValue(); paintCurrentValue(g, r, hasFocus); } r = rectangleForArrowIcon(); arrowIcon.paintIcon(c, g, r.x, r.y); if (!comboBox.isEditable()) { Border border = comboBox.getBorder(); Insets in; if (border != null) { in = border.getBorderInsets(comboBox); } else { in = new Insets(0, 0, 0, 0); } // Draw the separation if (MotifGraphicsUtils.isLeftToRight(comboBox)) { r.x -= (HORIZ_MARGIN + 2); } else { r.x += r.width + HORIZ_MARGIN + 1; } r.y = in.top; r.width = 1; r.height = comboBox.getBounds().height - in.bottom - in.top; g.setColor(UIManager.getColor("controlShadow")); g.fillRect(r.x, r.y, r.width, r.height); r.x++; g.setColor(UIManager.getColor("controlHighlight")); g.fillRect(r.x, r.y, r.width, r.height); } }
@Override protected void paintComponent(Graphics g) { Graphics2D g2d = (Graphics2D) g; final Dimension size = getSize(); int _size = Math.min(size.width, size.height); _size = Math.min(_size, 600); if (myImage != null && myShouldInvalidate) { if (myImage.getWidth(null) != _size) { myImage = null; } } myShouldInvalidate = false; if (myImage == null) { myImage = createImage( new ColorWheelImageProducer( _size - BORDER_SIZE * 2, _size - BORDER_SIZE * 2, myBrightness)); myWheel = new Rectangle( BORDER_SIZE, BORDER_SIZE, _size - BORDER_SIZE * 2, _size - BORDER_SIZE * 2); } g.setColor(UIManager.getColor("Panel.background")); g.fillRect(0, 0, getWidth(), getHeight()); g2d.setComposite( AlphaComposite.getInstance(AlphaComposite.SRC_OVER, ((float) myOpacity) / 255f)); g.drawImage(myImage, myWheel.x, myWheel.y, null); g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC, 1.0f)); int mx = myWheel.x + myWheel.width / 2; int my = myWheel.y + myWheel.height / 2; //noinspection UseJBColor g.setColor(Color.WHITE); int arcw = (int) (myWheel.width * mySaturation / 2); int arch = (int) (myWheel.height * mySaturation / 2); double th = myHue * 2 * Math.PI; final int x = (int) (mx + arcw * Math.cos(th)); final int y = (int) (my - arch * Math.sin(th)); g.fillRect(x - 2, y - 2, 4, 4); //noinspection UseJBColor g.setColor(Color.BLACK); g.drawRect(x - 2, y - 2, 4, 4); }
/** * Create a component that will replace the spinner models value with the object returned by * <code>spinner.getNextValue</code>. By default the <code>nextButton</code> is a JButton who's * <code>ActionListener</code> updates it's <code>JSpinner</code> ancestors model. If a nextButton * isn't needed (in a subclass) then override this method to return null. * * @return a component that will replace the spinners model with the next value in the sequence, * or null * @see #installUI * @see #createPreviousButton */ protected Component createNextButton() { Component tmpButton = super.createNextButton(); if (tmpButton instanceof JButton) { JButton result = new ArrowButton(SwingConstants.NORTH); ((ArrowButton) result).setDrawBottomBorder(false); result.setBorder( BorderFactory.createMatteBorder(1, 1, 0, 1, UIManager.getColor("Button.borderColor"))); ActionListener al[] = ((JButton) tmpButton).getActionListeners(); for (int i = 0; i < al.length; i++) result.addActionListener(al[i]); MouseListener ml[] = ((JButton) tmpButton).getMouseListeners(); for (int i = 0; i < ml.length; i++) result.addMouseListener(ml[i]); return result; } else return tmpButton; }
protected void installDefaults() { Color defaultGridColor = UIManager.getColor("Table.gridColor"); Color defaultForegroundColor = UIManager.getColor("Table.foreground"); Color defaultBackgroundColor = UIManager.getColor("Table.background"); Border defaultBorder = UIManager.getBorder("Table.scrollPaneBorder"); Color defaultSelectionForeground = UIManager.getColor("Table.selectionForeground"); Color defaultSelectionBackground = UIManager.getColor("Table.selectionBackground"); Color defaultFocusCellForeground = UIManager.getColor("Table.focusCellForeground"); Color defaultFocusCellBackground = new Color(153, 153, 204); Font defaultFont = UIManager.getFont("Table.font"); Border defaultGridBorder = UIManager.getBorder("Table.border"); InputMap inputMap = (InputMap) UIManager.get("Table.ancestorInputMap"); if (!installed) { UIManager.getDefaults().put("Grid.gridColor", defaultGridColor); UIManager.getDefaults().put("Grid.foreground", defaultForegroundColor); UIManager.getDefaults().put("Grid.background", defaultBackgroundColor); UIManager.getDefaults().put("Grid.selectionForegroundColor", defaultSelectionForeground); UIManager.getDefaults().put("Grid.selectionBackgroundColor", defaultSelectionBackground); UIManager.getDefaults().put("Grid.focusForegroundColor", defaultFocusCellForeground); UIManager.getDefaults().put("Grid.focusBackgroundColor", defaultFocusCellBackground); UIManager.getDefaults().put("Grid.border", defaultGridBorder); UIManager.getDefaults().put("Grid.font", defaultFont); UIManager.getDefaults().put("Grid.scrollPaneBorder", defaultBorder); UIManager.getDefaults().put("Grid.ancestorInputMap", inputMap); installed = true; } Color foregroundColor = grid.getForeground(); Color backgroundColor = grid.getBackground(); Font font = grid.getFont(); Border border = grid.getBorder(); Color gridColor = grid.getGridColor(); Color selectionForeground = grid.getSelectionForegroundColor(); Color selectionBackground = grid.getSelectionBackgroundColor(); Color focusForeground = grid.getFocusForegroundColor(); Color focusBackground = grid.getFocusBackgroundColor(); if (foregroundColor == null || foregroundColor instanceof UIResource) grid.setForeground(defaultForegroundColor); if (backgroundColor == null || backgroundColor instanceof UIResource) grid.setBackground(defaultBackgroundColor); if (font == null || font instanceof UIResource) grid.setFont(defaultFont); if (gridColor == null || gridColor instanceof UIResource) grid.setGridColor(defaultGridColor); if (border == null || border instanceof UIResource) grid.setBorder(defaultGridBorder); if (selectionForeground == null || selectionForeground instanceof UIResource) grid.setSelectionForegroundColor(defaultSelectionForeground); if (selectionBackground == null || selectionBackground instanceof UIResource) grid.setSelectionBackgroundColor(defaultSelectionBackground); if (focusForeground == null || focusForeground instanceof UIResource) grid.setFocusForegroundColor(defaultFocusCellForeground); if (focusBackground == null || focusBackground instanceof UIResource) grid.setFocusBackgroundColor(defaultFocusCellBackground); }
public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { ChatRoomWrapper chatRoom = (ChatRoomWrapper) value; this.setText(chatRoom.getChatRoomName()); Image chatRoomImage = ImageLoader.getImage(ImageLoader.CHAT_ROOM_16x16_ICON); if (chatRoom.getChatRoom() == null || !chatRoom.getChatRoom().isJoined()) { chatRoomImage = LightGrayFilter.createDisabledImage(chatRoomImage); } this.setIcon(new ImageIcon(chatRoomImage)); this.setFont(this.getFont().deriveFont(Font.PLAIN)); if (isSelected) this.setBackground(table.getSelectionBackground()); else this.setBackground(UIManager.getColor("Table.background")); return this; }
public void propertyChange(PropertyChangeEvent e) { if (e.getSource() instanceof PanelThreadMonitor) { if (e.getPropertyName().equals("Status")) { PanelThreadMonitor mntTmp = (PanelThreadMonitor) e.getSource(); int iMonitorIndex = pnlThread.indexOfComponent(mntTmp); if (iMonitorIndex >= 0) { if (e.getNewValue().equals("Started")) { if (!pnlThread.getBackgroundAt(iMonitorIndex).equals(COLOR_STARTED)) { pnlThread.setBackgroundAt(iMonitorIndex, COLOR_STARTED); pnlThread.setForegroundAt(iMonitorIndex, COLOR_STARTED_FG); } } else if (e.getNewValue().equals("Stopped")) { if (!pnlThread.getBackgroundAt(iMonitorIndex).equals(SystemColor.controlShadow)) { pnlThread.setBackgroundAt(iMonitorIndex, UIManager.getColor("TabbedPane.background")); pnlThread.setForegroundAt(iMonitorIndex, SystemColor.textText); } } } } } }
public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { ProtocolProviderService pps = (ProtocolProviderService) value; OperationSetPresence presence = pps.getOperationSet(OperationSetPresence.class); if (presence != null) { byte[] protocolStatusImage = presence.getPresenceStatus().getStatusIcon(); if (protocolStatusImage != null) { this.setIcon(new ImageIcon(protocolStatusImage)); } else { this.setIcon(null); } } this.setText(pps.getAccountID().getDisplayName()); if (isSelected) this.setBackground(table.getSelectionBackground()); else this.setBackground(UIManager.getColor("Table.background")); return this; }
public void paintComponent(Graphics g) { if (isPalette) { paintPalette(g); return; } boolean leftToRight = MetalUtils.isLeftToRight(frame); boolean isSelected = frame.isSelected(); int width = getWidth(); int height = getHeight(); Color background = null; Color foreground = null; Color shadow = null; MetalBumps bumps; String gradientKey; if (isSelected) { if (!MetalLookAndFeel.usingOcean()) { closeButton.setContentAreaFilled(true); maxButton.setContentAreaFilled(true); iconButton.setContentAreaFilled(true); } if (selectedBackgroundKey != null) { background = UIManager.getColor(selectedBackgroundKey); } if (background == null) { background = MetalLookAndFeel.getWindowTitleBackground(); } if (selectedForegroundKey != null) { foreground = UIManager.getColor(selectedForegroundKey); } if (selectedShadowKey != null) { shadow = UIManager.getColor(selectedShadowKey); } if (shadow == null) { shadow = MetalLookAndFeel.getPrimaryControlDarkShadow(); } if (foreground == null) { foreground = MetalLookAndFeel.getWindowTitleForeground(); } activeBumps.setBumpColors( activeBumpsHighlight, activeBumpsShadow, UIManager.get("InternalFrame.activeTitleGradient") != null ? null : background); bumps = activeBumps; gradientKey = "InternalFrame.activeTitleGradient"; } else { if (!MetalLookAndFeel.usingOcean()) { closeButton.setContentAreaFilled(false); maxButton.setContentAreaFilled(false); iconButton.setContentAreaFilled(false); } background = MetalLookAndFeel.getWindowTitleInactiveBackground(); foreground = MetalLookAndFeel.getWindowTitleInactiveForeground(); shadow = MetalLookAndFeel.getControlDarkShadow(); bumps = inactiveBumps; gradientKey = "InternalFrame.inactiveTitleGradient"; } if (!MetalUtils.drawGradient(this, g, gradientKey, 0, 0, width, height, true)) { g.setColor(background); g.fillRect(0, 0, width, height); } g.setColor(shadow); g.drawLine(0, height - 1, width, height - 1); g.drawLine(0, 0, 0, 0); g.drawLine(width - 1, 0, width - 1, 0); int titleLength = 0; int xOffset = leftToRight ? 5 : width - 5; String frameTitle = frame.getTitle(); Icon icon = frame.getFrameIcon(); if (icon != null) { if (!leftToRight) xOffset -= icon.getIconWidth(); int iconY = ((height / 2) - (icon.getIconHeight() / 2)); icon.paintIcon(frame, g, xOffset, iconY); xOffset += leftToRight ? icon.getIconWidth() + 5 : -5; } if (frameTitle != null) { Font f = getFont(); g.setFont(f); FontMetrics fm = SwingUtilities2.getFontMetrics(frame, g, f); int fHeight = fm.getHeight(); g.setColor(foreground); int yOffset = ((height - fm.getHeight()) / 2) + fm.getAscent(); Rectangle rect = new Rectangle(0, 0, 0, 0); if (frame.isIconifiable()) { rect = iconButton.getBounds(); } else if (frame.isMaximizable()) { rect = maxButton.getBounds(); } else if (frame.isClosable()) { rect = closeButton.getBounds(); } int titleW; if (leftToRight) { if (rect.x == 0) { rect.x = frame.getWidth() - frame.getInsets().right - 2; } titleW = rect.x - xOffset - 4; frameTitle = getTitle(frameTitle, fm, titleW); } else { titleW = xOffset - rect.x - rect.width - 4; frameTitle = getTitle(frameTitle, fm, titleW); xOffset -= SwingUtilities2.stringWidth(frame, fm, frameTitle); } titleLength = SwingUtilities2.stringWidth(frame, fm, frameTitle); SwingUtilities2.drawString(frame, g, frameTitle, xOffset, yOffset); xOffset += leftToRight ? titleLength + 5 : -5; } int bumpXOffset; int bumpLength; if (leftToRight) { bumpLength = width - buttonsWidth - xOffset - 5; bumpXOffset = xOffset; } else { bumpLength = xOffset - buttonsWidth - 5; bumpXOffset = buttonsWidth + 5; } int bumpYOffset = 3; int bumpHeight = getHeight() - (2 * bumpYOffset); bumps.setBumpArea(bumpLength, bumpHeight); bumps.paintIcon(this, g, bumpXOffset, bumpYOffset); }
public void displayMessage(String message, boolean error) { if (error) messageLbl.setForeground(Color.red); else messageLbl.setForeground(UIManager.getColor("Label.foreground")); messageLbl.setText(message); messageLbl.setToolTipText(message); }
protected void installDefaults() { if (desktop.getBackground() == null || desktop.getBackground() instanceof UIResource) { desktop.setBackground(UIManager.getColor("Desktop.background")); } LookAndFeel.installProperty(desktop, "opaque", Boolean.TRUE); }
private void jbInit() throws Exception { //////////////////////////////////////////////////////// // Init LAF //////////////////////////////////////////////////////// ButtonGroup grpLAF = new ButtonGroup(); ActionListener lsnLAF = new ActionListener() { public void actionPerformed(ActionEvent evt) { int iIndex = mvtLAFItem.indexOf(evt.getSource()); if (iIndex >= 0) changeLAF(iIndex); } }; //////////////////////////////////////////////////////// UIManager.LookAndFeelInfo laf = new UIManager.LookAndFeelInfo( "Kunststoff", "com.incors.plaf.kunststoff.KunststoffLookAndFeel"); marrLaf = UIManager.getInstalledLookAndFeels(); int iIndex = 0; while (iIndex < marrLaf.length && !marrLaf[iIndex].getName().equals(laf.getName())) iIndex++; if (iIndex >= marrLaf.length) { UIManager.installLookAndFeel(laf); marrLaf = UIManager.getInstalledLookAndFeels(); } for (iIndex = 0; iIndex < marrLaf.length; iIndex++) { JMenuItem mnu = new JRadioButtonMenuItem(marrLaf[iIndex].getName()); mnu.addActionListener(lsnLAF); mvtLAFItem.addElement(mnu); mnuUI.add(mnu); grpLAF.add(mnu); } mnuUI.addSeparator(); //////////////////////////////////////////////////////// // Init language //////////////////////////////////////////////////////// ButtonGroup grpLanguage = new ButtonGroup(); ActionListener lsnLanguage = new ActionListener() { public void actionPerformed(ActionEvent e) { int iIndex = mvtLanguageItem.indexOf(e.getSource()); if (iIndex >= 0) changeDictionary((String) mvtLanguage.elementAt(iIndex)); } }; //////////////////////////////////////////////////////// String[] str = MonitorDictionary.getSupportedLanguage(); for (iIndex = 0; iIndex < str.length; iIndex++) { JMenuItem mnu = new JRadioButtonMenuItem(MonitorDictionary.getDictionary(str[iIndex]).getLanguage()); mnu.addActionListener(lsnLanguage); mvtLanguage.addElement(str[iIndex]); mvtLanguageItem.addElement(mnu); mnuUI.add(mnu); grpLanguage.add(mnu); } //////////////////////////////////////////////////////// // Add to main menu //////////////////////////////////////////////////////// mnuMain.removeAll(); mnuMain.add(mnuSystem); mnuSystem.add(mnuSystem_Login); mnuSystem.add(mnuSystem_ChangePassword); mnuSystem.addSeparator(); mnuSystem.add(mnuSystem_StopServer); mnuSystem.add(mnuSystem_EnableThreads); mnuMain.add(mnuUI); mnuMain.add(mnuHelp); mnuHelp.add(mnuHelp_About); //////////////////////////////////////////////////////// mnuMain.add(chkVietnamese); mnuMain.add(lblStatus); //////////////////////////////////////////////////////// pnlThread.setTabPlacement(JTabbedPane.LEFT); pnlThread.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); //////////////////////////////////////////////////////// tblUser.addColumn("", 1, false); tblUser.addColumn("", 2, false, Global.FORMAT_DATE_TIME); tblUser.addColumn("", 3, false); //////////////////////////////////////////////////////// JPanel pnlMessage = new JPanel(); pnlMessage.setLayout(new GridBagLayout()); pnlMessage.add( new JScrollPane(txtBoard), new GridBagConstraints( 0, 0, 2, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(2, 2, 2, 2), 0, 0)); pnlMessage.add( txtMessage, new GridBagConstraints( 0, 1, 1, 1, 1.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(2, 2, 2, 2), 0, 0)); pnlMessage.add( btnSend, new GridBagConstraints( 1, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(2, 2, 2, 2), 0, 0)); txtBoard.setEditable(false); txtBoard.setAutoscrolls(true); txtBoard.setContentType("text/html"); clearAll(txtBoard); //////////////////////////////////////////////////////// JPanel pnlUserButton = new JPanel(new GridLayout(1, 2, 4, 4)); pnlUserButton.add(btnKick); pnlUserButton.add(btnRefresh); //////////////////////////////////////////////////////// JPanel pnlManager = new JPanel(new GridBagLayout()); pnlManager.add( new JScrollPane(tblUser), new GridBagConstraints( 0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(2, 2, 2, 2), 0, 0)); pnlManager.add( pnlUserButton, new GridBagConstraints( 0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(4, 2, 4, 2), 0, 0)); //////////////////////////////////////////////////////// pnlUser.setDividerLocation(320); pnlUser.setLeftComponent(pnlManager); pnlUser.setRightComponent(pnlMessage); pnlUser.setOneTouchExpandable(true); //////////////////////////////////////////////////////// setOrientation(JSplitPane.VERTICAL_SPLIT); setOneTouchExpandable(true); pnlThread.setVisible(false); pnlUser.setVisible(false); setTopComponent(pnlThread); setBottomComponent(pnlUser); //////////////////////////////////////////////////////// pmn.add(mnuSelectAll); pmn.addSeparator(); pmn.add(mnuClearSelected); pmn.add(mnuClearAll); //////////////////////////////////////////////////////// setBorder(BorderFactory.createEmptyBorder()); pnlUser.setBorder(BorderFactory.createEmptyBorder()); pnlManager.setBorder( BorderFactory.createBevelBorder( javax.swing.border.BevelBorder.RAISED, Color.white, UIManager.getColor("Panel.background"), UIManager.getColor("Panel.background"), UIManager.getColor("Panel.background"))); pnlMessage.setBorder( BorderFactory.createBevelBorder( javax.swing.border.BevelBorder.RAISED, Color.white, UIManager.getColor("Panel.background"), UIManager.getColor("Panel.background"), UIManager.getColor("Panel.background"))); //////////////////////////////////////////////////////// Skin.applySkin(mnuMain); Skin.applySkin(tblUser); Skin.applySkin(pmn); Skin.applySkin(this); //////////////////////////////////////////////////////// // Default setting //////////////////////////////////////////////////////// Hashtable prt = null; try { prt = Global.loadHashtable(Global.FILE_CONFIG); } catch (Exception e) { prt = new Hashtable(); } changeLAF(Integer.parseInt(StringUtil.nvl(prt.get("LAF"), "0"))); changeDictionary(StringUtil.nvl(prt.get("Language"), "VN")); Skin.LANGUAGE_CHANGE_LISTENER = this; MonitorProcessor.setRootObject(this); updateKeyboardUI(); //////////////////////////////////////////////////////// // Event handler //////////////////////////////////////////////////////// tblUser.addMouseListener( new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() > 1) btnKick.doClick(); } }); //////////////////////////////////////////////////////// btnRefresh.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent evt) { try { DDTP request = new DDTP(); request.setRequestID(String.valueOf(System.currentTimeMillis())); DDTP response = channel.sendRequest("ThreadProcessor", "queryUserList", request); if (response != null) { tblUser.setData((Vector) response.getReturn()); if (mstrChannel != null) removeUser(mstrChannel); } } catch (Exception e) { e.printStackTrace(); MessageBox.showMessageDialog(pnlThread, e, Global.APP_NAME, MessageBox.ERROR_MESSAGE); } } }); //////////////////////////////////////////////////////// btnKick.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent evt) { int iSelected = tblUser.getSelectedRow(); if (iSelected < 0) return; int iResult = MessageBox.showConfirmDialog( pnlThread, mdic.getString("ConfirmKick"), Global.APP_NAME, MessageBox.YES_NO_OPTION); if (iResult == MessageBox.NO_OPTION) return; try { String strChannel = (String) tblUser.getRow(iSelected).elementAt(0); DDTP request = new DDTP(); request.setRequestID(String.valueOf(System.currentTimeMillis())); request.setString("strChannel", strChannel); DDTP response = channel.sendRequest("ThreadProcessor", "kickUser", request); } catch (Exception e) { e.printStackTrace(); MessageBox.showMessageDialog(pnlThread, e, Global.APP_NAME, MessageBox.ERROR_MESSAGE); } } }); //////////////////////////////////////////////////////// txtMessage.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent evt) { btnSend.doClick(); } }); //////////////////////////////////////////////////////// btnSend.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent evt) { if (txtMessage.getText().length() == 0) return; try { DDTP request = new DDTP(); request.setString("strMessage", txtMessage.getText()); channel.sendRequest("ThreadProcessor", "sendMessage", request); txtMessage.setText(""); } catch (Exception e) { e.printStackTrace(); MessageBox.showMessageDialog(pnlThread, e, Global.APP_NAME, MessageBox.ERROR_MESSAGE); } } }); //////////////////////////////////////////////////////// mnuClearAll.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { clearAll(txtBoard); } }); //////////////////////////////////////////////////////// mnuClearSelected.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { txtBoard.setEditable(true); txtBoard.replaceSelection(""); txtBoard.setEditable(false); } }); //////////////////////////////////////////////////////// mnuSelectAll.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { txtBoard.requestFocus(); txtBoard.selectAll(); } }); //////////////////////////////////////////////////////// txtBoard.addMouseListener( new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getButton() == e.BUTTON3) pmn.show(txtBoard, e.getX(), e.getY()); } }); //////////////////////////////////////////////////////// mnuSystem_Login.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { login(); } }); //////////////////////////////////////////////////////// mnuSystem_ChangePassword.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { changePassword(); } }); //////////////////////////////////////////////////////// mnuSystem_StopServer.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { stopServer(); } }); //////////////////////////////////////////////////////// mnuSystem_EnableThreads.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { manageThreads(); } }); //////////////////////////////////////////////////////// mnuHelp_About.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { WindowManager.centeredWindow(new DialogAbout(PanelThreadManager.this)); } }); //////////////////////////////////////////////////////// chkVietnamese.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { switchKeyboard(); } }); }
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents // Generated using JFormDesigner non-commercial license private void initComponents() { dialogPane = new JPanel(); contentPanel = new JPanel(); textArea1 = new JTextArea(); filterPanel = new JPanel(); label1 = new JLabel(); genomeFilter = new JTextField(); scrollPane1 = new JScrollPane(); genomeList = new JList7<GenomeListItem>(); downloadSequenceCB = new JCheckBox(); buttonBar = new JPanel(); okButton = new JButton(); cancelButton = new JButton(); // ======== this ======== setModal(true); setTitle("Genomes to add to list"); Container contentPane = getContentPane(); contentPane.setLayout(new BorderLayout()); // ======== dialogPane ======== { dialogPane.setBorder(new EmptyBorder(12, 12, 12, 12)); dialogPane.setPreferredSize(new Dimension(350, 500)); dialogPane.setLayout(new BorderLayout()); // ======== contentPanel ======== { contentPanel.setLayout(new BoxLayout(contentPanel, BoxLayout.Y_AXIS)); // ---- textArea1 ---- textArea1.setText("Selected genomes will be added to the genome dropdown list."); textArea1.setLineWrap(true); textArea1.setWrapStyleWord(true); textArea1.setBackground(UIManager.getColor("Button.background")); textArea1.setRows(2); textArea1.setMaximumSize(new Dimension(2147483647, 60)); textArea1.setRequestFocusEnabled(false); textArea1.setEditable(false); contentPanel.add(textArea1); // ======== filterPanel ======== { filterPanel.setMaximumSize(new Dimension(2147483647, 28)); filterPanel.setLayout(new GridBagLayout()); ((GridBagLayout) filterPanel.getLayout()).columnWidths = new int[] {0, 0, 0}; ((GridBagLayout) filterPanel.getLayout()).rowHeights = new int[] {0, 0}; ((GridBagLayout) filterPanel.getLayout()).columnWeights = new double[] {1.0, 1.0, 1.0E-4}; ((GridBagLayout) filterPanel.getLayout()).rowWeights = new double[] {1.0, 1.0E-4}; // ---- label1 ---- label1.setText("Filter:"); label1.setLabelFor(genomeFilter); label1.setRequestFocusEnabled(false); filterPanel.add( label1, new GridBagConstraints( 0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.VERTICAL, new Insets(0, 0, 0, 0), 0, 0)); // ---- genomeFilter ---- genomeFilter.setToolTipText("Filter genome list"); genomeFilter.setPreferredSize(new Dimension(220, 28)); genomeFilter.setMinimumSize(new Dimension(180, 28)); genomeFilter.setAlignmentX(0.0F); genomeFilter.addKeyListener( new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { genomeEntryKeyReleased(e); } }); filterPanel.add( genomeFilter, new GridBagConstraints( 1, 0, 1, 1, 1.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); } contentPanel.add(filterPanel); // ======== scrollPane1 ======== { // ---- genomeList ---- genomeList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); genomeList.addMouseListener( new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { genomeListMouseClicked(e); } }); scrollPane1.setViewportView(genomeList); } contentPanel.add(scrollPane1); // ---- downloadSequenceCB ---- downloadSequenceCB.setText("Download Sequence"); downloadSequenceCB.setAlignmentX(1.0F); downloadSequenceCB.setToolTipText( "Download the full sequence for this organism. Note that these files can be very large (human is about 3 gigabytes)"); downloadSequenceCB.setMaximumSize(new Dimension(1000, 23)); downloadSequenceCB.setPreferredSize(new Dimension(300, 23)); downloadSequenceCB.setMinimumSize(new Dimension(300, 23)); contentPanel.add(downloadSequenceCB); } dialogPane.add(contentPanel, BorderLayout.CENTER); // ======== buttonBar ======== { buttonBar.setBorder(new EmptyBorder(12, 0, 0, 0)); buttonBar.setLayout(new GridBagLayout()); ((GridBagLayout) buttonBar.getLayout()).columnWidths = new int[] {0, 85, 80}; ((GridBagLayout) buttonBar.getLayout()).columnWeights = new double[] {1.0, 0.0, 0.0}; // ---- okButton ---- okButton.setText("OK"); okButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { okButtonActionPerformed(e); } }); buttonBar.add( okButton, new GridBagConstraints( 1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 5, 5), 0, 0)); // ---- cancelButton ---- cancelButton.setText("Cancel"); cancelButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { cancelButtonActionPerformed(e); } }); buttonBar.add( cancelButton, new GridBagConstraints( 2, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 5, 0), 0, 0)); } dialogPane.add(buttonBar, BorderLayout.SOUTH); } contentPane.add(dialogPane, BorderLayout.CENTER); pack(); setLocationRelativeTo(getOwner()); } // </editor-fold>//GEN-END:initComponents
/** Display a frame for browsing issues. */ private JPanel constructView() { // sort the original issues list final SortedList<Issue> issuesSortedList = new SortedList<Issue>(issuesEventList, null); // filter the sorted issues FilterList<Issue> filteredIssues = new FilterList<Issue>(issuesSortedList, filterPanel.getMatcherEditor()); SeparatorList<Issue> separatedIssues = new SeparatorList<Issue>( filteredIssues, GlazedLists.beanPropertyComparator(Issue.class, "subcomponent"), 0, Integer.MAX_VALUE); EventList<Issue> separatedIssuesProxyList = GlazedListsSwing.swingThreadProxyList(separatedIssues); // build the issues table issuesTableModel = GlazedListsSwing.eventTableModel(separatedIssuesProxyList, new IssueTableFormat()); final TableColumnModel issuesTableColumnModel = new EventTableColumnModel<TableColumn>(new BasicEventList<TableColumn>()); JSeparatorTable issuesJTable = new JSeparatorTable(issuesTableModel, issuesTableColumnModel); issuesJTable.setAutoCreateColumnsFromModel(true); issuesJTable.setSeparatorRenderer(new IssueSeparatorTableCell(separatedIssues)); issuesJTable.setSeparatorEditor(new IssueSeparatorTableCell(separatedIssues)); issuesSelectionModel = GlazedListsSwing.eventSelectionModel(separatedIssuesProxyList); issuesSelectionModel.setSelectionMode( ListSelection .MULTIPLE_INTERVAL_SELECTION_DEFENSIVE); // multi-selection best demos our awesome // selection management issuesSelectionModel.addListSelectionListener(new IssuesSelectionListener()); issuesJTable.setSelectionModel(issuesSelectionModel); issuesJTable.getColumnModel().getColumn(0).setPreferredWidth(150); issuesJTable.getColumnModel().getColumn(1).setPreferredWidth(400); issuesJTable.getColumnModel().getColumn(2).setPreferredWidth(300); issuesJTable.getColumnModel().getColumn(3).setPreferredWidth(300); issuesJTable.getColumnModel().getColumn(4).setPreferredWidth(250); issuesJTable.getColumnModel().getColumn(5).setPreferredWidth(300); issuesJTable.getColumnModel().getColumn(6).setPreferredWidth(300); issuesJTable.getColumnModel().getColumn(7).setPreferredWidth(1000); // turn off cell focus painting issuesJTable.setDefaultRenderer( String.class, new NoFocusRenderer(issuesJTable.getDefaultRenderer(String.class))); issuesJTable.setDefaultRenderer( Integer.class, new NoFocusRenderer(issuesJTable.getDefaultRenderer(Integer.class))); issuesJTable.setDefaultRenderer( Priority.class, new NoFocusRenderer(new PriorityTableCellRenderer())); LookAndFeelTweaks.tweakTable(issuesJTable); TableComparatorChooser.install( issuesJTable, issuesSortedList, TableComparatorChooser.MULTIPLE_COLUMN_KEYBOARD); JScrollPane issuesTableScrollPane = new JScrollPane( issuesJTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); issuesTableScrollPane.getViewport().setBackground(UIManager.getColor("EditorPane.background")); issuesTableScrollPane.setBorder(BorderFactory.createEmptyBorder()); issueDetails = new IssueDetailsComponent(filteredIssues); // projects EventList<Project> projects = Project.getProjects(); TransformedList<Project, Project> projectsProxyList = GlazedListsSwing.swingThreadProxyList(projects); // project select combobox DefaultEventComboBoxModel projectsComboModel = new DefaultEventComboBoxModel<Project>(projectsProxyList); JComboBox projectsCombo = new JComboBox(projectsComboModel); projectsCombo.setEditable(false); projectsCombo.setOpaque(false); projectsCombo.addItemListener(new ProjectChangeListener()); projectsComboModel.setSelectedItem(new Project(null, "Select a Java.net project...")); // build a label to display the number of issues in the issue table issueCounter = new IssueCounterLabel(filteredIssues); issueCounter.setHorizontalAlignment(SwingConstants.CENTER); issueCounter.setForeground(Color.WHITE); // throbber throbber = new JLabel(THROBBER_STATIC); throbber.setHorizontalAlignment(SwingConstants.RIGHT); // header bar JPanel iconBar = new GradientPanel(GLAZED_LISTS_MEDIUM_BROWN, GLAZED_LISTS_DARK_BROWN, true); iconBar.setLayout(new GridLayout(1, 3)); iconBar.add(projectsCombo); iconBar.add(issueCounter); iconBar.add(throbber); iconBar.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); // assemble all data components on a common panel JPanel dataPanel = new JPanel(); JComponent issueDetailsComponent = issueDetails; dataPanel.setLayout(new GridLayout(2, 1)); dataPanel.add(issuesTableScrollPane); dataPanel.add(issueDetailsComponent); // draw lines between components JComponent filtersPanel = filterPanel.getComponent(); filtersPanel.setBorder(BorderFactory.createEmptyBorder()); // filtersPanel.setBorder(BorderFactory.createMatteBorder(0, 0, 0, 1, // IssuesBrowser.GLAZED_LISTS_DARK_BROWN)); issueDetailsComponent.setBorder( BorderFactory.createMatteBorder(1, 0, 0, 0, GLAZED_LISTS_DARK_BROWN)); // the outermost panel to layout the icon bar with the other panels final JPanel mainPanel = new JPanel(new GridBagLayout()); mainPanel.add( iconBar, new GridBagConstraints( 0, 0, 2, 1, 1.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); mainPanel.add( filtersPanel, new GridBagConstraints( 0, 1, 1, 1, 0.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); mainPanel.add( Box.createHorizontalStrut(240), new GridBagConstraints( 0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); mainPanel.add( dataPanel, new GridBagConstraints( 1, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); return mainPanel; }
protected Color getDisabledTextColor() { disabledTextColor = UIManager.getColor(getPropertyPrefix() + "disabledText"); return disabledTextColor; }
// ******************************** // Default Accessors // ******************************** protected Color getSelectColor() { selectColor = UIManager.getColor(getPropertyPrefix() + "select"); return selectColor; }
private void determineColors() { switch (getWindowDecorationStyle()) { case JRootPane.FRAME: myActiveBackground = UIManager.getColor("activeCaption"); myActiveForeground = UIManager.getColor("activeCaptionText"); myActiveShadow = UIManager.getColor("activeCaptionBorder"); break; case JRootPane.ERROR_DIALOG: myActiveBackground = new Color( 43, 43, 43); // UIManager.getColor("OptionPane.errorDialog.titlePane.background"); myActiveForeground = UIManager.getColor("OptionPane.errorDialog.titlePane.foreground"); myActiveShadow = UIManager.getColor("OptionPane.errorDialog.titlePane.shadow"); break; case JRootPane.QUESTION_DIALOG: case JRootPane.COLOR_CHOOSER_DIALOG: case JRootPane.FILE_CHOOSER_DIALOG: myActiveBackground = new Color( 43, 43, 43); // UIManager.getColor("OptionPane.questionDialog.titlePane.background"); myActiveForeground = UIManager.getColor("OptionPane.questionDialog.titlePane.foreground"); myActiveShadow = UIManager.getColor("OptionPane.questionDialog.titlePane.shadow"); break; case JRootPane.WARNING_DIALOG: myActiveBackground = new Color( 43, 43, 43); // UIManager.getColor("OptionPane.warningDialog.titlePane.background"); myActiveForeground = UIManager.getColor("OptionPane.warningDialog.titlePane.foreground"); myActiveShadow = UIManager.getColor("OptionPane.warningDialog.titlePane.shadow"); break; case JRootPane.PLAIN_DIALOG: case JRootPane.INFORMATION_DIALOG: default: myActiveBackground = new Color(43, 43, 43); // UIManager.getColor("activeCaption"); myActiveForeground = UIManager.getColor("activeCaptionText"); myActiveShadow = UIManager.getColor("activeCaptionBorder"); break; } myActiveBackground = new Color(43, 43, 43); // UIManager.getColor("activeCaption"); myActiveForeground = JBColor.foreground(); // UIManager.getColor("activeCaptionText"); myActiveShadow = UIManager.getColor("activeCaptionBorder"); }
/** @author Konstantin Bulenkov */ public class DarculaTitlePane extends JComponent { private static final int IMAGE_HEIGHT = 16; private static final int IMAGE_WIDTH = 16; private PropertyChangeListener myPropertyChangeListener; private JMenuBar myMenuBar; private JMenuBar myIdeMenu; private Action myCloseAction; private Action myIconifyAction; private Action myRestoreAction; private Action myMaximizeAction; private JButton myToggleButton; private JButton myIconifyButton; private JButton myCloseButton; private Icon myMaximizeIcon; private Icon myMinimizeIcon; private Image mySystemIcon; private WindowListener myWindowListener; private Window myWindow; private JRootPane myRootPane; private int myState; private DarculaRootPaneUI rootPaneUI; private Color myInactiveBackground = UIManager.getColor("inactiveCaption"); private Color myInactiveForeground = UIManager.getColor("inactiveCaptionText"); private Color myInactiveShadow = UIManager.getColor("inactiveCaptionBorder"); private Color myActiveBackground = null; private Color myActiveForeground = null; private Color myActiveShadow = null; public DarculaTitlePane(JRootPane root, DarculaRootPaneUI ui) { this.myRootPane = root; rootPaneUI = ui; myState = -1; installSubcomponents(); determineColors(); installDefaults(); setLayout(createLayout()); setBorder(JBUI.Borders.empty(3, 0)); } private void uninstall() { uninstallListeners(); myWindow = null; removeAll(); } private void installListeners() { if (myWindow != null) { myWindowListener = createWindowListener(); myWindow.addWindowListener(myWindowListener); myPropertyChangeListener = createWindowPropertyChangeListener(); myWindow.addPropertyChangeListener(myPropertyChangeListener); } } private void uninstallListeners() { if (myWindow != null) { myWindow.removeWindowListener(myWindowListener); myWindow.removePropertyChangeListener(myPropertyChangeListener); } } private WindowListener createWindowListener() { return new WindowHandler(); } private PropertyChangeListener createWindowPropertyChangeListener() { return new PropertyChangeHandler(); } public JRootPane getRootPane() { return myRootPane; } private int getWindowDecorationStyle() { return getRootPane().getWindowDecorationStyle(); } public void addNotify() { super.addNotify(); uninstallListeners(); myWindow = SwingUtilities.getWindowAncestor(this); if (myWindow != null) { if (myWindow instanceof Frame) { setState(((Frame) myWindow).getExtendedState()); } else { setState(0); } setActive(myWindow.isActive()); installListeners(); updateSystemIcon(); } } public void removeNotify() { super.removeNotify(); uninstallListeners(); myWindow = null; } private void installSubcomponents() { int decorationStyle = getWindowDecorationStyle(); if (decorationStyle == JRootPane.FRAME) { createActions(); myMenuBar = createMenuBar(); if (myRootPane instanceof IdeRootPane) { myIdeMenu = new IdeMenuBar(ActionManagerEx.getInstanceEx(), DataManager.getInstance()); add(myIdeMenu); } add(myMenuBar); createButtons(); add(myIconifyButton); add(myToggleButton); add(myCloseButton); } else if (decorationStyle == JRootPane.PLAIN_DIALOG || decorationStyle == JRootPane.INFORMATION_DIALOG || decorationStyle == JRootPane.ERROR_DIALOG || decorationStyle == JRootPane.COLOR_CHOOSER_DIALOG || decorationStyle == JRootPane.FILE_CHOOSER_DIALOG || decorationStyle == JRootPane.QUESTION_DIALOG || decorationStyle == JRootPane.WARNING_DIALOG) { createActions(); createButtons(); add(myCloseButton); } } private void determineColors() { switch (getWindowDecorationStyle()) { case JRootPane.FRAME: myActiveBackground = UIManager.getColor("activeCaption"); myActiveForeground = UIManager.getColor("activeCaptionText"); myActiveShadow = UIManager.getColor("activeCaptionBorder"); break; case JRootPane.ERROR_DIALOG: myActiveBackground = new Color( 43, 43, 43); // UIManager.getColor("OptionPane.errorDialog.titlePane.background"); myActiveForeground = UIManager.getColor("OptionPane.errorDialog.titlePane.foreground"); myActiveShadow = UIManager.getColor("OptionPane.errorDialog.titlePane.shadow"); break; case JRootPane.QUESTION_DIALOG: case JRootPane.COLOR_CHOOSER_DIALOG: case JRootPane.FILE_CHOOSER_DIALOG: myActiveBackground = new Color( 43, 43, 43); // UIManager.getColor("OptionPane.questionDialog.titlePane.background"); myActiveForeground = UIManager.getColor("OptionPane.questionDialog.titlePane.foreground"); myActiveShadow = UIManager.getColor("OptionPane.questionDialog.titlePane.shadow"); break; case JRootPane.WARNING_DIALOG: myActiveBackground = new Color( 43, 43, 43); // UIManager.getColor("OptionPane.warningDialog.titlePane.background"); myActiveForeground = UIManager.getColor("OptionPane.warningDialog.titlePane.foreground"); myActiveShadow = UIManager.getColor("OptionPane.warningDialog.titlePane.shadow"); break; case JRootPane.PLAIN_DIALOG: case JRootPane.INFORMATION_DIALOG: default: myActiveBackground = new Color(43, 43, 43); // UIManager.getColor("activeCaption"); myActiveForeground = UIManager.getColor("activeCaptionText"); myActiveShadow = UIManager.getColor("activeCaptionBorder"); break; } myActiveBackground = new Color(43, 43, 43); // UIManager.getColor("activeCaption"); myActiveForeground = JBColor.foreground(); // UIManager.getColor("activeCaptionText"); myActiveShadow = UIManager.getColor("activeCaptionBorder"); } private void installDefaults() { setFont(JBUI.Fonts.label().asBold()); } protected JMenuBar createMenuBar() { myMenuBar = new SystemMenuBar(); myMenuBar.setFocusable(false); myMenuBar.setBorderPainted(true); myMenuBar.add(createMenu()); return myMenuBar; } private void close() { Window window = getWindow(); if (window != null) { window.dispatchEvent(new WindowEvent(window, WindowEvent.WINDOW_CLOSING)); } } private void iconify() { Frame frame = getFrame(); if (frame != null) { frame.setExtendedState(myState | Frame.ICONIFIED); } } private void maximize() { Frame frame = getFrame(); if (frame != null) { frame.setExtendedState(myState | Frame.MAXIMIZED_BOTH); } } private void restore() { Frame frame = getFrame(); if (frame == null) { return; } if ((myState & Frame.ICONIFIED) != 0) { frame.setExtendedState(myState & ~Frame.ICONIFIED); } else { frame.setExtendedState(myState & ~Frame.MAXIMIZED_BOTH); } } private void createActions() { myCloseAction = new CloseAction(); if (getWindowDecorationStyle() == JRootPane.FRAME) { myIconifyAction = new IconifyAction(); myRestoreAction = new RestoreAction(); myMaximizeAction = new MaximizeAction(); } } private JMenu createMenu() { JMenu menu = new JMenu(""); if (getWindowDecorationStyle() == JRootPane.FRAME) { addMenuItems(menu); } return menu; } private void addMenuItems(JMenu menu) { menu.add(myRestoreAction); menu.add(myIconifyAction); if (Toolkit.getDefaultToolkit().isFrameStateSupported(Frame.MAXIMIZED_BOTH)) { menu.add(myMaximizeAction); } menu.add(new JSeparator()); menu.add(myCloseAction); } private static JButton createButton(String accessibleName, Icon icon, Action action) { JButton button = new JButton() { boolean mouseOverButton = false; { enableEvents(AWTEvent.MOUSE_EVENT_MASK); addMouseListener( new MouseAdapter() { @Override public void mouseEntered(MouseEvent e) { mouseOverButton = true; repaint(); } @Override public void mouseExited(MouseEvent e) { mouseOverButton = false; repaint(); } }); } @Override protected void paintComponent(Graphics g) { final Window window = SwingUtilities.windowForComponent(this); float alpha = window.isActive() && mouseOverButton ? 1f : 0.5f; final GraphicsConfig config = GraphicsUtil.paintWithAlpha(g, alpha); getIcon().paintIcon(this, g, 0, 0); config.restore(); } }; button.setFocusPainted(false); button.setFocusable(false); button.setOpaque(false); button.putClientProperty("paintActive", Boolean.TRUE); button.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, accessibleName); button.setBorder(JBUI.Borders.empty()); button.setText(null); button.setAction(action); button.setIcon(icon); return button; } private void createButtons() { myCloseButton = createButton("Close", UIManager.getIcon("InternalFrame.closeIcon"), myCloseAction); if (getWindowDecorationStyle() == JRootPane.FRAME) { myMaximizeIcon = UIManager.getIcon("InternalFrame.maximizeIcon"); myMinimizeIcon = UIManager.getIcon("InternalFrame.minimizeIcon"); myIconifyButton = createButton("Iconify", UIManager.getIcon("InternalFrame.iconifyIcon"), myIconifyAction); myToggleButton = createButton("Maximize", myMaximizeIcon, myRestoreAction); } } private LayoutManager createLayout() { return new TitlePaneLayout(); } private void setActive(boolean active) { myCloseButton.putClientProperty("paintActive", Boolean.valueOf(active)); if (getWindowDecorationStyle() == JRootPane.FRAME) { myIconifyButton.putClientProperty("paintActive", Boolean.valueOf(active)); myToggleButton.putClientProperty("paintActive", Boolean.valueOf(active)); } getRootPane().repaint(); } private void setState(int state) { setState(state, false); } private void setState(int state, boolean updateRegardless) { Window wnd = getWindow(); if (wnd != null && getWindowDecorationStyle() == JRootPane.FRAME) { if (myState == state && !updateRegardless) { return; } Frame frame = getFrame(); if (frame != null) { JRootPane rootPane = getRootPane(); if (((state & Frame.MAXIMIZED_BOTH) != 0) && (rootPane.getBorder() == null || (rootPane.getBorder() instanceof UIResource)) && frame.isShowing()) { rootPane.setBorder(null); } else if ((state & Frame.MAXIMIZED_BOTH) == 0) { // This is a croak, if state becomes bound, this can // be nuked. rootPaneUI.installBorder(rootPane); } if (frame.isResizable()) { if ((state & Frame.MAXIMIZED_BOTH) != 0) { updateToggleButton(myRestoreAction, myMinimizeIcon); myMaximizeAction.setEnabled(false); myRestoreAction.setEnabled(true); } else { updateToggleButton(myMaximizeAction, myMaximizeIcon); myMaximizeAction.setEnabled(true); myRestoreAction.setEnabled(false); } if (myToggleButton.getParent() == null || myIconifyButton.getParent() == null) { add(myToggleButton); add(myIconifyButton); revalidate(); repaint(); } myToggleButton.setText(null); } else { myMaximizeAction.setEnabled(false); myRestoreAction.setEnabled(false); if (myToggleButton.getParent() != null) { remove(myToggleButton); revalidate(); repaint(); } } } else { // Not contained in a Frame myMaximizeAction.setEnabled(false); myRestoreAction.setEnabled(false); myIconifyAction.setEnabled(false); remove(myToggleButton); remove(myIconifyButton); revalidate(); repaint(); } myCloseAction.setEnabled(true); myState = state; } } private void updateToggleButton(Action action, Icon icon) { myToggleButton.setAction(action); myToggleButton.setIcon(icon); myToggleButton.setText(null); } private Frame getFrame() { Window window = getWindow(); if (window instanceof Frame) { return (Frame) window; } return null; } private Window getWindow() { return myWindow; } private String getTitle() { Window w = getWindow(); if (w instanceof Frame) { return ((Frame) w).getTitle(); } else if (w instanceof Dialog) { return ((Dialog) w).getTitle(); } return null; } public void paintComponent(Graphics g) { if (getFrame() != null) { setState(getFrame().getExtendedState()); } JRootPane rootPane = getRootPane(); Window window = getWindow(); boolean leftToRight = (window == null) ? rootPane.getComponentOrientation().isLeftToRight() : window.getComponentOrientation().isLeftToRight(); boolean isSelected = (window == null) ? true : window.isActive(); int width = getWidth(); int height = getHeight(); Color background; Color foreground; Color darkShadow; if (isSelected) { background = UIUtil.getPanelBackground(); // myActiveBackground; foreground = myActiveForeground; darkShadow = Gray._73; // myActiveShadow; } else { background = UIUtil.getPanelBackground(); // myInactiveBackground; foreground = myInactiveForeground; darkShadow = myInactiveShadow; } g.setColor(background); g.fillRect(0, 0, width, height); // g.setColor(darkShadow); // g.drawLine(0, height - 1, width, height - 1); // g.drawLine(0, 0, 0, 0); // g.drawLine(width - 1, 0, width - 1, 0); int xOffset = leftToRight ? 5 : width - 5; if (getWindowDecorationStyle() == JRootPane.FRAME) { xOffset += leftToRight ? IMAGE_WIDTH + 5 : -IMAGE_WIDTH - 5; } String theTitle = getTitle(); if (theTitle != null) { FontMetrics fm = SwingUtilities2.getFontMetrics(rootPane, g); g.setColor(foreground); int yOffset = ((height - fm.getHeight()) / 2) + fm.getAscent(); Rectangle rect = new Rectangle(0, 0, 0, 0); if (myIconifyButton != null && myIconifyButton.getParent() != null) { rect = myIconifyButton.getBounds(); } int titleW; if (leftToRight) { if (rect.x == 0) { rect.x = window.getWidth() - window.getInsets().right - 2; } titleW = rect.x - xOffset - 4; theTitle = SwingUtilities2.clipStringIfNecessary(rootPane, fm, theTitle, titleW); } else { titleW = xOffset - rect.x - rect.width - 4; theTitle = SwingUtilities2.clipStringIfNecessary(rootPane, fm, theTitle, titleW); xOffset -= SwingUtilities2.stringWidth(rootPane, fm, theTitle); } int titleLength = SwingUtilities2.stringWidth(rootPane, fm, theTitle); if (myIdeMenu == null) { SwingUtilities2.drawString(rootPane, g, theTitle, xOffset, yOffset); xOffset += leftToRight ? titleLength + 5 : -5; } } int w = width; int h = height; h--; g.setColor(UIManager.getColor("MenuBar.darcula.borderColor")); g.drawLine(0, h, w, h); h--; g.setColor(UIManager.getColor("MenuBar.darcula.borderShadowColor")); g.drawLine(0, h, w, h); } private class CloseAction extends AbstractAction { public CloseAction() { super(UIManager.getString("DarculaTitlePane.closeTitle", getLocale())); } public void actionPerformed(ActionEvent e) { close(); } } private class IconifyAction extends AbstractAction { public IconifyAction() { super(UIManager.getString("DarculaTitlePane.iconifyTitle", getLocale())); } public void actionPerformed(ActionEvent e) { iconify(); } } private class RestoreAction extends AbstractAction { public RestoreAction() { super(UIManager.getString("DarculaTitlePane.restoreTitle", getLocale())); } public void actionPerformed(ActionEvent e) { restore(); } } private class MaximizeAction extends AbstractAction { public MaximizeAction() { super(UIManager.getString("DarculaTitlePane.maximizeTitle", getLocale())); } public void actionPerformed(ActionEvent e) { maximize(); } } private class SystemMenuBar extends JMenuBar { public void paint(Graphics g) { if (isOpaque()) { g.setColor(getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); } if (mySystemIcon != null) { g.drawImage(mySystemIcon, 0, 0, IMAGE_WIDTH, IMAGE_HEIGHT, null); } else { Icon icon = UIManager.getIcon("InternalFrame.icon"); if (icon != null) { icon.paintIcon(this, g, 0, 0); } } } public Dimension getMinimumSize() { return getPreferredSize(); } public Dimension getPreferredSize() { Dimension size = super.getPreferredSize(); return new Dimension(Math.max(IMAGE_WIDTH, size.width), Math.max(size.height, IMAGE_HEIGHT)); } } private class TitlePaneLayout implements LayoutManager { public void addLayoutComponent(String name, Component c) {} public void removeLayoutComponent(Component c) {} public Dimension preferredLayoutSize(Container c) { int height = computeHeight(); //noinspection SuspiciousNameCombination return new Dimension(-1, height); } public Dimension minimumLayoutSize(Container c) { return preferredLayoutSize(c); } private int computeHeight() { FontMetrics fm = myRootPane.getFontMetrics(getFont()); int fontHeight = fm.getHeight(); fontHeight += 7; int iconHeight = 0; if (getWindowDecorationStyle() == JRootPane.FRAME) { iconHeight = IMAGE_HEIGHT; } return Math.max(Math.max(fontHeight, iconHeight), JBUI.scale(myIdeMenu == null ? 28 : 36)); } public void layoutContainer(Container c) { int w = getWidth(); int h = getHeight(); int x; int spacing; int buttonHeight; int buttonWidth; if (myCloseButton != null && myCloseButton.getIcon() != null) { buttonHeight = myCloseButton.getIcon().getIconHeight(); buttonWidth = myCloseButton.getIcon().getIconWidth(); } else { buttonHeight = IMAGE_HEIGHT; buttonWidth = IMAGE_WIDTH; } spacing = 5; x = spacing; if (myMenuBar != null) { myMenuBar.setBounds(x, (h - buttonHeight) / 2, buttonWidth, buttonHeight); } if (myIdeMenu != null) { final Dimension size = myIdeMenu.getPreferredSize(); x += spacing + (myMenuBar != null ? buttonWidth : 0); myIdeMenu.setBounds(x, (h - size.height) / 2, size.width, size.height); } x = w; spacing = 8; x += -spacing - buttonWidth; if (myCloseButton != null) { myCloseButton.setBounds(x, (h - buttonHeight) / 2, buttonWidth, buttonHeight); } if (getWindowDecorationStyle() == JRootPane.FRAME) { if (Toolkit.getDefaultToolkit().isFrameStateSupported(Frame.MAXIMIZED_BOTH)) { if (myToggleButton.getParent() != null) { // spacing = 10; x += -spacing - buttonWidth; myToggleButton.setBounds(x, (h - buttonHeight) / 2, buttonWidth, buttonHeight); } } if (myIconifyButton != null && myIconifyButton.getParent() != null) { x += -spacing - buttonWidth; myIconifyButton.setBounds(x, (h - buttonHeight) / 2, buttonWidth, buttonHeight); } } } } private class PropertyChangeHandler implements PropertyChangeListener { public void propertyChange(PropertyChangeEvent pce) { String name = pce.getPropertyName(); if ("resizable".equals(name) || "state".equals(name)) { Frame frame = getFrame(); if (frame != null) { setState(frame.getExtendedState(), true); } if ("resizable".equals(name)) { getRootPane().repaint(); } } else if ("title".equals(name)) { repaint(); } else if ("componentOrientation" == name) { revalidate(); repaint(); } else if ("iconImage" == name) { updateSystemIcon(); revalidate(); repaint(); } } } private void updateSystemIcon() { Window window = getWindow(); if (window == null) { mySystemIcon = null; return; } List<Image> icons = window.getIconImages(); assert icons != null; if (icons.size() == 0) { mySystemIcon = null; } else if (icons.size() == 1) { mySystemIcon = icons.get(0); } else { final JBDimension size = JBUI.size(32); final Image image = icons.get(0); mySystemIcon = Scalr.resize( ImageUtil.toBufferedImage(image), Scalr.Method.ULTRA_QUALITY, size.width, size.height); } } private class WindowHandler extends WindowAdapter { public void windowActivated(WindowEvent ev) { setActive(true); } public void windowDeactivated(WindowEvent ev) { setActive(false); } } }
public void paintComponent(Graphics g) { if (getFrame() != null) { setState(getFrame().getExtendedState()); } JRootPane rootPane = getRootPane(); Window window = getWindow(); boolean leftToRight = (window == null) ? rootPane.getComponentOrientation().isLeftToRight() : window.getComponentOrientation().isLeftToRight(); boolean isSelected = (window == null) ? true : window.isActive(); int width = getWidth(); int height = getHeight(); Color background; Color foreground; Color darkShadow; if (isSelected) { background = UIUtil.getPanelBackground(); // myActiveBackground; foreground = myActiveForeground; darkShadow = Gray._73; // myActiveShadow; } else { background = UIUtil.getPanelBackground(); // myInactiveBackground; foreground = myInactiveForeground; darkShadow = myInactiveShadow; } g.setColor(background); g.fillRect(0, 0, width, height); // g.setColor(darkShadow); // g.drawLine(0, height - 1, width, height - 1); // g.drawLine(0, 0, 0, 0); // g.drawLine(width - 1, 0, width - 1, 0); int xOffset = leftToRight ? 5 : width - 5; if (getWindowDecorationStyle() == JRootPane.FRAME) { xOffset += leftToRight ? IMAGE_WIDTH + 5 : -IMAGE_WIDTH - 5; } String theTitle = getTitle(); if (theTitle != null) { FontMetrics fm = SwingUtilities2.getFontMetrics(rootPane, g); g.setColor(foreground); int yOffset = ((height - fm.getHeight()) / 2) + fm.getAscent(); Rectangle rect = new Rectangle(0, 0, 0, 0); if (myIconifyButton != null && myIconifyButton.getParent() != null) { rect = myIconifyButton.getBounds(); } int titleW; if (leftToRight) { if (rect.x == 0) { rect.x = window.getWidth() - window.getInsets().right - 2; } titleW = rect.x - xOffset - 4; theTitle = SwingUtilities2.clipStringIfNecessary(rootPane, fm, theTitle, titleW); } else { titleW = xOffset - rect.x - rect.width - 4; theTitle = SwingUtilities2.clipStringIfNecessary(rootPane, fm, theTitle, titleW); xOffset -= SwingUtilities2.stringWidth(rootPane, fm, theTitle); } int titleLength = SwingUtilities2.stringWidth(rootPane, fm, theTitle); if (myIdeMenu == null) { SwingUtilities2.drawString(rootPane, g, theTitle, xOffset, yOffset); xOffset += leftToRight ? titleLength + 5 : -5; } } int w = width; int h = height; h--; g.setColor(UIManager.getColor("MenuBar.darcula.borderColor")); g.drawLine(0, h, w, h); h--; g.setColor(UIManager.getColor("MenuBar.darcula.borderShadowColor")); g.drawLine(0, h, w, h); }
private void doPaint(Graphics g) { GraphicsUtil.setupAntialiasing(g); final boolean isEmpty = getIcon() == null && StringUtil.isEmpty(getText()); final Dimension size = getSize(); if (isSmallVariant()) { final Graphics2D g2 = (Graphics2D) g; g2.setColor(UIUtil.getControlColor()); final int w = getWidth(); final int h = getHeight(); if (getModel().isArmed() && getModel().isPressed()) { g2.setPaint( new GradientPaint( 0, 0, UIUtil.getControlColor(), 0, h, ColorUtil.shift(UIUtil.getControlColor(), 0.8))); } else { g2.setPaint( new GradientPaint( 0, 0, ColorUtil.shift(UIUtil.getControlColor(), 1.1), 0, h, ColorUtil.shift(UIUtil.getControlColor(), 0.9))); } g2.fillRect(2, 0, w - 2, h); GraphicsUtil.setupAntialiasing(g2); if (!myMouseInside) { g2.setPaint( new GradientPaint( 0, 0, UIUtil.getBorderColor(), 0, h, UIUtil.getBorderColor().darker())); // g2.setColor(UIUtil.getBorderColor()); } else { g2.setPaint( new GradientPaint( 0, 0, UIUtil.getBorderColor().darker(), 0, h, UIUtil.getBorderColor().darker().darker())); } g2.drawRect(2, 0, w - 3, h - 1); final Icon icon = getIcon(); int x = 7; if (icon != null) { icon.paintIcon(null, g, x, (size.height - icon.getIconHeight()) / 2); x += icon.getIconWidth() + 3; } if (!StringUtil.isEmpty(getText())) { final Font font = getFont(); g2.setFont(font); g2.setColor(UIManager.getColor("Panel.foreground")); g2.drawString(getText(), x, (size.height + font.getSize()) / 2 - 1); } } else { super.paintComponent(g); } final Insets insets = super.getInsets(); final Icon icon = isEnabled() ? ARROW_ICON : DISABLED_ARROW_ICON; final int x; if (isEmpty) { x = (size.width - icon.getIconWidth()) / 2; } else { if (isSmallVariant()) { x = size.width - icon.getIconWidth() - insets.right + 1; } else { x = size.width - icon.getIconWidth() - insets.right + (UIUtil.isUnderNimbusLookAndFeel() ? -3 : 2); } } if (UIUtil.isUnderDarcula()) { g.setXORMode(new Color(208, 188, 159)); } icon.paintIcon(null, g, x, (size.height - icon.getIconHeight()) / 2); g.setPaintMode(); }
protected Color getFocusColor() { focusColor = UIManager.getColor(getPropertyPrefix() + "focus"); return focusColor; }