コード例 #1
0
ファイル: SynthButtonUI.java プロジェクト: FauxFaux/jdk9-jdk
  /** Returns the current state of the passed in <code>AbstractButton</code>. */
  private int getComponentState(JComponent c) {
    int state = ENABLED;

    if (!c.isEnabled()) {
      state = DISABLED;
    }
    if (SynthLookAndFeel.getSelectedUI() == this) {
      return SynthLookAndFeel.getSelectedUIState() | SynthConstants.ENABLED;
    }
    AbstractButton button = (AbstractButton) c;
    ButtonModel model = button.getModel();

    if (model.isPressed()) {
      if (model.isArmed()) {
        state = PRESSED;
      } else {
        state = MOUSE_OVER;
      }
    }
    if (model.isRollover()) {
      state |= MOUSE_OVER;
    }
    if (model.isSelected()) {
      state |= SELECTED;
    }
    if (c.isFocusOwner() && button.isFocusPainted()) {
      state |= FOCUSED;
    }
    if ((c instanceof JButton) && ((JButton) c).isDefaultButton()) {
      state |= DEFAULT;
    }
    return state;
  }
コード例 #2
0
ファイル: SynthListUI.java プロジェクト: GregBowyer/Hotspot
  private void updateStyle(JComponent c) {
    SynthContext context = getContext(list, ENABLED);
    SynthStyle oldStyle = style;

    style = SynthLookAndFeel.updateStyle(context, this);

    if (style != oldStyle) {
      context.setComponentState(SELECTED);
      Color sbg = list.getSelectionBackground();
      if (sbg == null || sbg instanceof UIResource) {
        list.setSelectionBackground(style.getColor(context, ColorType.TEXT_BACKGROUND));
      }

      Color sfg = list.getSelectionForeground();
      if (sfg == null || sfg instanceof UIResource) {
        list.setSelectionForeground(style.getColor(context, ColorType.TEXT_FOREGROUND));
      }

      useListColors = style.getBoolean(context, "List.rendererUseListColors", true);
      useUIBorder = style.getBoolean(context, "List.rendererUseUIBorder", true);

      int height = style.getInt(context, "List.cellHeight", -1);
      if (height != -1) {
        list.setFixedCellHeight(height);
      }
      if (oldStyle != null) {
        uninstallKeyboardActions();
        installKeyboardActions();
      }
    }
    context.dispose();
  }
コード例 #3
0
 private int getComponentState(JComponent c) {
   int baseState = SynthLookAndFeel.getComponentState(c);
   if (viewportViewFocusHandler != null && viewportViewHasFocus) {
     baseState = baseState | FOCUSED;
   }
   return baseState;
 }
コード例 #4
0
 /**
  * This method gets called when a bound property is changed on the associated JTextComponent. This
  * is a hook which UI implementations may change to reflect how the UI displays bound properties
  * of JTextComponent subclasses. This is implemented to rebuild the ActionMap based upon an
  * EditorKit change.
  *
  * @param evt the property change event
  */
 @Override
 protected void propertyChange(PropertyChangeEvent evt) {
   if (SynthLookAndFeel.shouldUpdateStyle(evt)) {
     updateStyle((JTextComponent) evt.getSource());
   }
   super.propertyChange(evt);
 }
コード例 #5
0
ファイル: SynthButtonUI.java プロジェクト: FauxFaux/jdk9-jdk
  void updateStyle(AbstractButton b) {
    SynthContext context = getContext(b, SynthConstants.ENABLED);
    SynthStyle oldStyle = style;
    style = SynthLookAndFeel.updateStyle(context, this);
    if (style != oldStyle) {
      if (b.getMargin() == null || (b.getMargin() instanceof UIResource)) {
        Insets margin = (Insets) style.get(context, getPropertyPrefix() + "margin");

        if (margin == null) {
          // Some places assume margins are non-null.
          margin = SynthLookAndFeel.EMPTY_UIRESOURCE_INSETS;
        }
        b.setMargin(margin);
      }

      Object value = style.get(context, getPropertyPrefix() + "iconTextGap");
      if (value != null) {
        LookAndFeel.installProperty(b, "iconTextGap", value);
      }

      value = style.get(context, getPropertyPrefix() + "contentAreaFilled");
      LookAndFeel.installProperty(b, "contentAreaFilled", value != null ? value : Boolean.TRUE);

      if (oldStyle != null) {
        uninstallKeyboardActions(b);
        installKeyboardActions(b);
      }
    }
  }
コード例 #6
0
ファイル: SynthListUI.java プロジェクト: GregBowyer/Hotspot
    @Override
    public Component getListCellRendererComponent(
        JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
      if (!useListColors && (isSelected || cellHasFocus)) {
        SynthLookAndFeel.setSelectedUI(
            (SynthLabelUI) SynthLookAndFeel.getUIOfType(getUI(), SynthLabelUI.class),
            isSelected,
            cellHasFocus,
            list.isEnabled(),
            false);
      } else {
        SynthLookAndFeel.resetSelectedUI();
      }

      super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
      return this;
    }
コード例 #7
0
  /**
   * Notifies this UI delegate to repaint the specified component. This method paints the component
   * background, then calls the {@link #paint(SynthContext,Graphics)} method.
   *
   * <p>In general, this method does not need to be overridden by subclasses. All Look and Feel
   * rendering code should reside in the {@code paint} method.
   *
   * @param g the {@code Graphics} object used for painting
   * @param c the component being painted
   * @see #paint(SynthContext,Graphics)
   */
  @Override
  public void update(Graphics g, JComponent c) {
    SynthContext context = getContext(c);

    SynthLookAndFeel.update(context, g);
    context.getPainter().paintScrollPaneBackground(context, g, 0, 0, c.getWidth(), c.getHeight());
    paint(context, g);
  }
コード例 #8
0
  /**
   * Notifies this UI delegate to repaint the specified component. This method paints the component
   * background, then calls the {@link #paint(SynthContext,Graphics)} method.
   *
   * <p>In general, this method does not need to be overridden by subclasses. All Look and Feel
   * rendering code should reside in the {@code paint} method.
   *
   * @param g the {@code Graphics} object used for painting
   * @param c the component being painted
   * @see #paint(SynthContext,Graphics)
   */
  @Override
  public void update(Graphics g, JComponent c) {
    SynthContext context = getContext(c);

    SynthLookAndFeel.update(context, g);
    paintBackground(context, g, c);
    paint(context, g);
  }
コード例 #9
0
  private void updateStyle(JTextComponent comp) {
    SynthContext context = getContext(comp, ENABLED);
    SynthStyle oldStyle = style;

    style = SynthLookAndFeel.updateStyle(context, this);

    if (style != oldStyle) {
      SynthTextFieldUI.updateStyle(comp, context, getPropertyPrefix());

      if (oldStyle != null) {
        uninstallKeyboardActions();
        installKeyboardActions();
      }
    }
  }
コード例 #10
0
  private void updateStyle(JScrollPane c) {
    SynthContext context = getContext(c, ENABLED);
    SynthStyle oldStyle = style;

    style = SynthLookAndFeel.updateStyle(context, this);
    if (style != oldStyle) {
      Border vpBorder = scrollpane.getViewportBorder();
      if ((vpBorder == null) || (vpBorder instanceof UIResource)) {
        scrollpane.setViewportBorder(new ViewportBorder(context));
      }
      if (oldStyle != null) {
        uninstallKeyboardActions(c);
        installKeyboardActions(c);
      }
    }
  }
コード例 #11
0
ファイル: SynthListUI.java プロジェクト: GregBowyer/Hotspot
 /** @inheritDoc */
 @Override
 public void propertyChange(PropertyChangeEvent e) {
   if (SynthLookAndFeel.shouldUpdateStyle(e)) {
     updateStyle((JList) e.getSource());
   }
 }
コード例 #12
0
ファイル: SynthListUI.java プロジェクト: GregBowyer/Hotspot
 @Override
 public void paint(Graphics g) {
   super.paint(g);
   SynthLookAndFeel.resetSelectedUI();
 }
コード例 #13
0
ファイル: SynthListUI.java プロジェクト: GregBowyer/Hotspot
 private int getComponentState(JComponent c) {
   return SynthLookAndFeel.getComponentState(c);
 }
コード例 #14
0
ファイル: SynthListUI.java プロジェクト: GregBowyer/Hotspot
 private SynthContext getContext(JComponent c, int state) {
   return SynthContext.getContext(
       SynthContext.class, c, SynthLookAndFeel.getRegion(c), style, state);
 }
コード例 #15
0
 public void propertyChange(PropertyChangeEvent e) {
   if (SynthLookAndFeel.shouldUpdateStyle(e)) {
     updateStyle(scrollpane);
   }
 }
コード例 #16
0
 /** {@inheritDoc} */
 @Override
 public SynthContext getContext(JComponent c) {
   return getContext(c, SynthLookAndFeel.getComponentState(c));
 }