示例#1
0
  private AbstractButton createButton(AppAction action) {
    if (action instanceof CustomizableAppAction) {
      ((CustomizableAppAction) action).requestUpdate(this);
    }
    if (action.isToggle()) {
      JToggleButton bt = new JToggleButton(action);
      bt.setOpaque(false);
      bt.setContentAreaFilled(false);
      bt.setBorderPainted(false);

      bt.addActionListener(
          new ActionListener() {
            public void actionPerformed(ActionEvent e) {
              hideThreadrunning = false;
              TrayIconPopup.this.dispose();
            }
          });

      Icon icon;
      bt.setIcon(icon = NewTheme.I().getCheckBoxImage(action.getIconKey(), false, ICON_SIZE));
      bt.setRolloverIcon(icon);
      bt.setSelectedIcon(
          icon = NewTheme.I().getCheckBoxImage(action.getIconKey(), true, ICON_SIZE));
      bt.setRolloverSelectedIcon(icon);

      bt.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
      bt.setFocusPainted(false);
      bt.setHorizontalAlignment(JButton.LEFT);
      bt.setIconTextGap(5);
      bt.addMouseListener(new HoverEffect(bt));
      return bt;
    } else {
      // we use a JToggleButton here, because JToggle buttons seem to have a different left icon gap
      // the jbuttons

      JToggleButton bt = new JToggleButton(action);
      bt.setOpaque(false);
      bt.setContentAreaFilled(false);
      bt.setBorderPainted(false);
      bt.addActionListener(
          new ActionListener() {
            public void actionPerformed(ActionEvent e) {
              hideThreadrunning = false;
              TrayIconPopup.this.dispose();
            }
          });
      bt.setIcon(NewTheme.I().getIcon(action.getIconKey(), ICON_SIZE));
      bt.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
      bt.setFocusPainted(false);
      bt.setHorizontalAlignment(JButton.LEFT);
      bt.setIconTextGap(5);
      bt.addMouseListener(new HoverEffect(bt));
      return bt;
    }
  }
示例#2
0
  public JToggleButton createButton(String name, ImageIcon icon) {
    JToggleButton button =
        new JToggleButton() {
          @Override
          public void paintComponent(Graphics g) {
            if (!isSelected()) {
              super.paintComponent(g);
              setForeground(Theme.TEXT_COLOR.darker());
              return;
            }

            g.setColor(new Color(0x666666));
            setForeground(Theme.TEXT_COLOR);
            g.fillRect(0, 0, getWidth(), getHeight());
            super.paintComponent(g);
          }
        };

    button.setIconTextGap(8);
    button.setContentAreaFilled(false);
    button.setFocusPainted(false);
    button.setBorder(
        BorderFactory.createCompoundBorder(
            BorderFactory.createMatteBorder(0, 0, 1, 0, new Color(0x454545)),
            BorderFactory.createMatteBorder(0, 0, 1, 0, new Color(0x333333))));

    button.setHorizontalAlignment(SwingConstants.CENTER);
    button.setVerticalAlignment(SwingConstants.CENTER);
    button.setHorizontalTextPosition(SwingConstants.CENTER);
    button.setVerticalTextPosition(SwingConstants.BOTTOM);
    button.setForeground(Theme.TEXT_COLOR.darker());

    button.setMinimumSize(new Dimension(BUTTON_WIDTH, BUTTON_HEIGHT));
    button.setMaximumSize(new Dimension(BUTTON_WIDTH, BUTTON_HEIGHT));
    button.setPreferredSize(new Dimension(BUTTON_WIDTH, BUTTON_HEIGHT));

    button.setAction(
        new AbstractAction(name, icon) {
          @Override
          public void actionPerformed(ActionEvent e) {
            switchToPage(e.getActionCommand());
          }
        });

    buttonGroup.add(button);

    return button;
  }
  private JToggleButton createDevCardButton(String text, String imageFile) {

    final int BUTTON_TEXT_SIZE = 24;

    BufferedImage image = loadDevCardImage(imageFile);

    JToggleButton button =
        new JToggleButton(text, new ImageIcon(image)) {

          @Override
          public void paintComponent(Graphics g) {

            g.setColor(Color.white);
            g.fillRect(0, 0, this.getWidth(), this.getHeight());

            super.paintComponent(g);
          }
        };

    FontUtils.setFont(button, BUTTON_TEXT_SIZE);
    button.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));
    button.setBackground(Color.white);
    button.setContentAreaFilled(false);
    button.setVerticalTextPosition(AbstractButton.BOTTOM);
    button.setHorizontalTextPosition(AbstractButton.CENTER);

    button.addChangeListener(
        new ChangeListener() {
          @Override
          public void stateChanged(ChangeEvent arg) {

            JToggleButton source = (JToggleButton) arg.getSource();
            if (source.isSelected()) {
              source.setBorder(BorderFactory.createLineBorder(Color.black, 3));
            } else {
              source.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));
            }
          }
        });

    return button;
  }
 /**
  * Adds a panel to this configuration panel.
  *
  * @param text the text to use on the toolbar button
  * @param icon the icon to use on the toolbar button
  * @param icon2 the icon to use on the toolbar button when the mouse button is held down
  * @param p the configuration panel page
  */
 public void addPanel(String text, Icon icon, Icon icon2, JPanel p) {
   JToggleButton button = new JToggleButton(text, icon);
   button.setVerticalTextPosition(AbstractButton.BOTTOM);
   button.setHorizontalTextPosition(AbstractButton.CENTER);
   button.setContentAreaFilled(false);
   try {
     // JDK 1.4+
     // button.setIconTextGap(0);
     AbstractButton.class
         .getMethod("setIconTextGap", new Class[] {Integer.TYPE})
         .invoke(button, new Object[] {new Integer(0)});
   } catch (Exception ex) {
   }
   button.setPressedIcon(icon2);
   group.add(button);
   toolbar.add(button);
   toolbar.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.gray));
   button.addItemListener(
       new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
           JToggleButton b = (JToggleButton) e.getSource();
           switch (e.getStateChange()) {
             case ItemEvent.SELECTED:
               select(b);
               break;
             case ItemEvent.DESELECTED:
               unselect(b);
               break;
           }
         }
       });
   if (panel.getComponentCount() == 0) {
     button.setSelected(true);
     page = 0;
   } else {
     unselect(button);
   }
   panel.add(p, text.intern());
 }
  /** Set up the button bar */
  private void setupButtonBar() {
    bottombar = new JPanel();
    bottombar.setLayout(new BoxLayout(bottombar, BoxLayout.X_AXIS));

    editEntity = new JToggleButton();
    editEntity.setIcon(Builder.getIcon("lock.png", Builder.ICONS, 22));
    editEntity.setSelectedIcon(Builder.getIcon("unlock.png", Builder.ICONS, 22));
    editEntity.setBorderPainted(false);
    editEntity.setContentAreaFilled(false);
    editEntity.setFocusable(false);

    editEntity.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            if (!editEntity.isSelected() && hasChanged) {
              /*if(!warnLosingChanges()) {
              	editEntity.setSelected(true);
              	return;
              }
              else {
              	editEntity.setSelected(false);
              	hasChanged = false;
              }*/
              doSave();
            }
            enableEditing(editEntity.isSelected());
          }
        });

    bottombar.add(editEntity);

    editEntityText = new JLabel(I18n.getText("general.initializing").toLowerCase());
    editEntityText.setLabelFor(editEntity);
    bottombar.add(editEntityText);

    editEntitySave = new JButton(I18n.getText("general.saveChanges"));
    editEntityCancel = new JButton(I18n.getText("general.cancel"));

    // don't let an errant enter key fire these buttons!
    editEntitySave.setDefaultCapable(false);
    editEntityCancel.setDefaultCapable(false);

    editEntitySave.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            doSave();
          }
        });

    editEntityCancel.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            hasChanged = false;
            editEntity.setSelected(false);
            enableEditing(false);
          }
        });

    bottombar.add(Box.createHorizontalGlue());
    bottombar.add(editEntitySave);
    bottombar.add(Box.createHorizontalStrut(6));
    bottombar.add(editEntityCancel);
    bottombar.add(Box.createHorizontalStrut(6));
  }
示例#6
0
  /**
   * Creates a new instance of <code>Channel</code> using the specified non-<code>null</code>
   * channel model.
   *
   * @param model The model to be used by this channel.
   * @throws IllegalArgumentException If the model is <code>null</code>.
   */
  public Channel(SamplerChannelModel model) {
    super(model);

    setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));

    mainPane.setLayout(new BoxLayout(mainPane, BoxLayout.Y_AXIS));

    JPanel p = new JPanel();
    p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
    p.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));

    // setToolTipText(" Channel: " + String.valueOf(getChannelID()) + " ");

    Dimension d = btnInstr.getPreferredSize();
    btnInstr.setMaximumSize(new Dimension(Short.MAX_VALUE, d.height));
    p.add(btnInstr);
    p.add(Box.createRigidArea(new Dimension(6, 0)));

    lStreams.setHorizontalAlignment(JLabel.CENTER);
    lVoices.setHorizontalAlignment(JLabel.CENTER);

    JPanel statPane = new JPanel();
    statPane.setBorder(BorderFactory.createLoweredBevelBorder());
    statPane.setLayout(new BoxLayout(statPane, BoxLayout.X_AXIS));
    statPane.add(Box.createRigidArea(new Dimension(6, 0)));
    statPane.add(lStreams);
    statPane.add(new JLabel("/"));
    statPane.add(lVoices);
    statPane.add(Box.createRigidArea(new Dimension(6, 0)));

    p.add(statPane);

    p.add(Box.createRigidArea(new Dimension(6, 0)));

    btnMute.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
    p.add(btnMute);
    p.add(Box.createRigidArea(new Dimension(6, 0)));

    btnSolo.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
    p.add(btnSolo);
    p.add(Box.createRigidArea(new Dimension(6, 0)));

    JPanel volumePane = new JPanel();
    volumePane.setBorder(BorderFactory.createLoweredBevelBorder());
    volumePane.setLayout(new BoxLayout(volumePane, BoxLayout.X_AXIS));
    volumePane.add(Box.createRigidArea(new Dimension(6, 0)));

    d = slVolume.getPreferredSize();
    slVolume.setMaximumSize(new Dimension(d.width > 300 ? d.width : 300, d.height));
    volumePane.add(slVolume);

    lVolume.setBorder(BorderFactory.createEmptyBorder(3, 6, 3, 6));
    lVolume.setHorizontalAlignment(lVolume.RIGHT);

    // We use this to set the size of the lVolume that will be used in setVolume()
    // to prevent the frequent resizing of lVolume
    lVolume.setText("100%");

    volumePane.add(lVolume);

    p.add(volumePane);
    p.add(Box.createRigidArea(new Dimension(6, 0)));

    btnProperties.setContentAreaFilled(false);
    btnProperties.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
    btnProperties.setIcon(iconShowProperties);
    btnProperties.setSelectedIcon(iconHideProperties);
    p.add(btnProperties);

    mainPane.add(p);

    propertiesPane = new ChannelProperties(model);
    propertiesPane.setBorder(BorderFactory.createEmptyBorder(0, 3, 3, 3));
    propertiesPane.setVisible(false);
    mainPane.add(propertiesPane);
    add(mainPane);

    d = getPreferredSize();
    setMaximumSize(new Dimension(getMaximumSize().width, d.height));

    getModel().addSamplerChannelListener(getHandler());

    actInstr =
        new AbstractAction() {
          public void actionPerformed(ActionEvent e) {
            if (actInstr.isEnabled()) loadInstrument();
          }
        };

    btnInstr.addActionListener(actInstr);

    btnMute.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            changeMute();
          }
        });

    btnSolo.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            changeSolo();
          }
        });

    slVolume.addChangeListener(
        new ChangeListener() {
          public void stateChanged(ChangeEvent e) {
            setVolume();
          }
        });

    btnProperties.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            showProperties(btnProperties.isSelected());

            String s;
            if (btnProperties.isSelected()) {
              s = i18n.getButtonLabel("Channel.ttHideProps");
            } else {
              s = i18n.getButtonLabel("Channel.ttShowProps");
            }

            btnProperties.setToolTipText(s);
          }
        });

    btnProperties.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));

    String s;
    if (btnProperties.isSelected()) s = i18n.getButtonLabel("Channel.ttHideProps");
    else s = i18n.getButtonLabel("Channel.ttShowProps");

    btnProperties.setToolTipText(s);

    addPropertyChangeListener(getHandler());

    updateChannelInfo();
  }