Example #1
0
  /** 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;
  }
 /**
  * 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);
 }
Example #3
0
  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();
  }
Example #4
0
 private int getComponentState(JComponent c) {
   int baseState = SynthLookAndFeel.getComponentState(c);
   if (viewportViewFocusHandler != null && viewportViewHasFocus) {
     baseState = baseState | FOCUSED;
   }
   return baseState;
 }
Example #5
0
  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);
      }
    }
  }
Example #6
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);
  }
Example #7
0
    @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;
    }
Example #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);
    context.getPainter().paintScrollPaneBackground(context, g, 0, 0, c.getWidth(), c.getHeight());
    paint(context, g);
  }
Example #9
0
  private int getComponentState(JComponent c, Region subregion) {
    int state = SynthLookAndFeel.getComponentState(c);

    if (divider.isMouseOver()) {
      state |= MOUSE_OVER;
    }
    return state;
  }
Example #10
0
  private void updateStyle(JSplitPane splitPane) {
    SynthContext context = getContext(splitPane, Region.SPLIT_PANE_DIVIDER, ENABLED);
    SynthStyle oldDividerStyle = dividerStyle;
    dividerStyle = SynthLookAndFeel.updateStyle(context, this);
    context.dispose();

    context = getContext(splitPane, ENABLED);
    SynthStyle oldStyle = style;

    style = SynthLookAndFeel.updateStyle(context, this);

    if (style != oldStyle) {
      Object value = style.get(context, "SplitPane.size");
      if (value == null) {
        value = Integer.valueOf(6);
      }
      LookAndFeel.installProperty(splitPane, "dividerSize", value);

      value = style.get(context, "SplitPane.oneTouchExpandable");
      if (value != null) {
        LookAndFeel.installProperty(splitPane, "oneTouchExpandable", value);
      }

      if (divider != null) {
        splitPane.remove(divider);
        divider.setDividerSize(splitPane.getDividerSize());
      }
      if (oldStyle != null) {
        uninstallKeyboardActions();
        installKeyboardActions();
      }
    }
    if (style != oldStyle || dividerStyle != oldDividerStyle) {
      // Only way to force BasicSplitPaneDivider to reread the
      // necessary properties.
      if (divider != null) {
        splitPane.remove(divider);
      }
      divider = createDefaultDivider();
      divider.setBasicSplitPaneUI(this);
      splitPane.add(divider, JSplitPane.DIVIDER);
    }
    context.dispose();
  }
Example #11
0
  private void updateStyle(JTable c) {
    SynthContext context = getContext(c, ENABLED);
    SynthStyle oldStyle = style;
    style = SynthLookAndFeel.updateStyle(context, this);
    if (style != oldStyle) {
      context.setComponentState(ENABLED | SELECTED);

      Color sbg = table.getSelectionBackground();
      if (sbg == null || sbg instanceof UIResource) {
        table.setSelectionBackground(style.getColor(context, ColorType.TEXT_BACKGROUND));
      }

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

      context.setComponentState(ENABLED);

      Color gridColor = table.getGridColor();
      if (gridColor == null || gridColor instanceof UIResource) {
        gridColor = (Color) style.get(context, "Table.gridColor");
        if (gridColor == null) {
          gridColor = style.getColor(context, ColorType.FOREGROUND);
        }
        table.setGridColor(gridColor == null ? new ColorUIResource(Color.GRAY) : gridColor);
      }

      useTableColors = style.getBoolean(context, "Table.rendererUseTableColors", true);
      useUIBorder = style.getBoolean(context, "Table.rendererUseUIBorder", true);

      Object rowHeight = style.get(context, "Table.rowHeight");
      if (rowHeight != null) {
        LookAndFeel.installProperty(table, "rowHeight", rowHeight);
      }
      boolean showGrid = style.getBoolean(context, "Table.showGrid", true);
      if (!showGrid) {
        table.setShowGrid(false);
      }
      Dimension d = table.getIntercellSpacing();
      //            if (d == null || d instanceof UIResource) {
      if (d != null) {
        d = (Dimension) style.get(context, "Table.intercellSpacing");
      }
      alternateColor = (Color) style.get(context, "Table.alternateRowColor");
      if (d != null) {
        table.setIntercellSpacing(d);
      }

      if (oldStyle != null) {
        uninstallKeyboardActions();
        installKeyboardActions();
      }
    }
    context.dispose();
  }
Example #12
0
    public Component getTableCellRendererComponent(
        JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
      if (!useTableColors && (isSelected || hasFocus)) {
        SynthLookAndFeel.setSelectedUI(
            (SynthLabelUI) SynthLookAndFeel.getUIOfType(getUI(), SynthLabelUI.class),
            isSelected,
            hasFocus,
            table.isEnabled(),
            false);
      } else {
        SynthLookAndFeel.resetSelectedUI();
      }
      super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

      setIcon(null);
      if (table != null) {
        configureValue(value, table.getColumnClass(column));
      }
      return this;
    }
Example #13
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();
      }
    }
  }
Example #14
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);
      }
    }
  }
Example #15
0
 @Override
 public void paint(Graphics g) {
   super.paint(g);
   SynthLookAndFeel.resetSelectedUI();
 }
Example #16
0
 /** @inheritDoc */
 @Override
 public void propertyChange(PropertyChangeEvent e) {
   if (SynthLookAndFeel.shouldUpdateStyle(e)) {
     updateStyle((JList) e.getSource());
   }
 }
Example #17
0
 /** {@inheritDoc} */
 @Override
 public void propertyChange(PropertyChangeEvent event) {
   if (SynthLookAndFeel.shouldUpdateStyle(event)) {
     updateStyle((JTable) event.getSource());
   }
 }
Example #18
0
 private int getComponentState(JComponent c) {
   return SynthLookAndFeel.getComponentState(c);
 }
Example #19
0
 private SynthContext getContext(JComponent c, int state) {
   return SynthContext.getContext(
       SynthContext.class, c, SynthLookAndFeel.getRegion(c), style, state);
 }
Example #20
0
 /** {@inheritDoc} */
 @Override
 public SynthContext getContext(JComponent c) {
   return getContext(c, SynthLookAndFeel.getComponentState(c));
 }
Example #21
0
 public void propertyChange(PropertyChangeEvent e) {
   if (SynthLookAndFeel.shouldUpdateStyle(e)) {
     updateStyle(scrollpane);
   }
 }