コード例 #1
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();
  }
コード例 #2
0
 private int getComponentState(JComponent c) {
   int baseState = SynthLookAndFeel.getComponentState(c);
   if (viewportViewFocusHandler != null && viewportViewHasFocus) {
     baseState = baseState | FOCUSED;
   }
   return baseState;
 }
コード例 #3
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;
    }
コード例 #4
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);
  }
コード例 #5
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);
      }
    }
  }
コード例 #6
0
ファイル: SynthListUI.java プロジェクト: GregBowyer/Hotspot
 /** @inheritDoc */
 @Override
 public void propertyChange(PropertyChangeEvent e) {
   if (SynthLookAndFeel.shouldUpdateStyle(e)) {
     updateStyle((JList) e.getSource());
   }
 }
コード例 #7
0
ファイル: SynthListUI.java プロジェクト: GregBowyer/Hotspot
 @Override
 public void paint(Graphics g) {
   super.paint(g);
   SynthLookAndFeel.resetSelectedUI();
 }
コード例 #8
0
ファイル: SynthListUI.java プロジェクト: GregBowyer/Hotspot
 private int getComponentState(JComponent c) {
   return SynthLookAndFeel.getComponentState(c);
 }
コード例 #9
0
ファイル: SynthListUI.java プロジェクト: GregBowyer/Hotspot
 private SynthContext getContext(JComponent c, int state) {
   return SynthContext.getContext(
       SynthContext.class, c, SynthLookAndFeel.getRegion(c), style, state);
 }
コード例 #10
0
 public void propertyChange(PropertyChangeEvent e) {
   if (SynthLookAndFeel.shouldUpdateStyle(e)) {
     updateStyle(scrollpane);
   }
 }