⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rootwindowproperties.java

📁 修正了jdk1.6中对托盘事件产生异常的bug.
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        .setShadowEnabled(true);

    tabWindowProperties.getTabbedPanelProperties().getTabAreaComponentsProperties().getComponentProperties()
        .setInsets(new Insets(1, 3, 1, 3));

    tabWindowProperties.getCloseButtonProperties()
        .setFactory(DefaultButtonFactories.getCloseButtonFactory())
        .setVisible(true)
        .setTo(CloseWithAbortWindowAction.INSTANCE);

    tabWindowProperties.getRestoreButtonProperties()
        .setFactory(DefaultButtonFactories.getRestoreButtonFactory())
        .setVisible(true)
        .setTo(RestoreWithAbortWindowAction.INSTANCE);

    tabWindowProperties.getMinimizeButtonProperties()
        .setFactory(DefaultButtonFactories.getMinimizeButtonFactory())
        .setVisible(true)
        .setTo(MinimizeWithAbortWindowAction.INSTANCE);

    tabWindowProperties.getMaximizeButtonProperties()
        .setFactory(DefaultButtonFactories.getMaximizeButtonFactory())
        .setVisible(true)
        .setTo(MaximizeWithAbortWindowAction.INSTANCE);

    tabWindowProperties.getUndockButtonProperties()
        .setFactory(DefaultButtonFactories.getUndockButtonFactory())
        .setVisible(true)
        .setTo(UndockWithAbortWindowAction.INSTANCE);

    tabWindowProperties.getDockButtonProperties()
        .setFactory(DefaultButtonFactories.getDockButtonFactory())
        .setVisible(true)
        .setTo(DockWithAbortWindowAction.INSTANCE);

    TabbedPanelButtonProperties buttonProps = tabWindowProperties.getTabbedPanelProperties().getButtonProperties();
    buttonProps.getTabDropDownListButtonProperties().setToolTipText("Tab List");
    buttonProps.getScrollLeftButtonProperties().setToolTipText("Scroll Left");
    buttonProps.getScrollRightButtonProperties().setToolTipText("Scroll Right");
    buttonProps.getScrollUpButtonProperties().setToolTipText("Scroll Up");
    buttonProps.getScrollDownButtonProperties().setToolTipText("Scroll Down");
  }

  private static void setWindowBarProperties() {
    {
      WindowBarProperties p = DEFAULT_VALUES.getWindowBarProperties();

      p.setMinimumWidth(4);
      p.setContentPanelEdgeResizeEdgeDistance(6);
      p.setContinuousLayoutEnabled(true);
      p.setDragIndicatorColor(Color.DARK_GRAY);

      p.getTabWindowProperties().getTabbedPanelProperties()
          .setTabDeselectable(true)
          .setAutoSelectTab(false)

          .getTabAreaComponentsProperties()
          .setStretchEnabled(true)

          .getComponentProperties()
          .setBorder(new TabAreaLineBorder());

      p.getTabWindowProperties().getTabbedPanelProperties().getContentPanelProperties().getComponentProperties()
          .setInsets(new Insets(4, 4, 4, 4));

      p.getTabWindowProperties().getTabbedPanelProperties().getContentPanelProperties().getShapedPanelProperties()
          .setOpaque(true);

      p.getTabWindowProperties().getTabbedPanelProperties().getTabAreaProperties().setTabAreaVisiblePolicy(
          TabAreaVisiblePolicy.ALWAYS);
    }

    {
      WindowTabProperties p = DEFAULT_VALUES.getWindowBarProperties().getTabWindowProperties().getTabProperties();

      p.getTitledTabProperties()
          .setSizePolicy(TitledTabSizePolicy.EQUAL_SIZE)
//          .addSuperObject(HighlightedTabSetup.createTabProperties())
          .setHighlightedRaised(0);

/*      p.getFocusedProperties()
          .setBackgroundColor(Color.YELLOW);

  */
      p.getTitledTabProperties().getNormalProperties()
          .getComponentProperties().setInsets(new Insets(1, 4, 1, 4));

      p.getNormalButtonProperties().getCloseButtonProperties().setVisible(true);
      p.getNormalButtonProperties().getRestoreButtonProperties().setVisible(true);
      p.getNormalButtonProperties().getUndockButtonProperties().setVisible(true);
      p.getNormalButtonProperties().getDockButtonProperties().setVisible(true);
    }
  }

  private static void setFloatingWindowProperties() {
    for (int i = 0; i < ComponentProperties.PROPERTIES.getPropertyCount(); i++) {
      Property property = ComponentProperties.PROPERTIES.getProperty(i);

      FloatingWindowProperties.COMPONENT_PROPERTIES.get(DEFAULT_VALUES.getFloatingWindowProperties().getMap()).
          createRelativeRef(property,
                            RootWindowProperties.WINDOW_AREA_PROPERTIES.get(DEFAULT_VALUES.getMap()),
                            property);
    }
    for (int i = 0; i < ShapedPanelProperties.PROPERTIES.getPropertyCount(); i++) {
      Property property = ShapedPanelProperties.PROPERTIES.getProperty(i);

      FloatingWindowProperties.SHAPED_PANEL_PROPERTIES.get(DEFAULT_VALUES.getFloatingWindowProperties().getMap()).
          createRelativeRef(property,
                            RootWindowProperties.WINDOW_AREA_SHAPED_PANEL_PROPERTIES.get(DEFAULT_VALUES.getMap()),
                            property);
    }

    DEFAULT_VALUES.getFloatingWindowProperties().setAutoCloseEnabled(true);
    DEFAULT_VALUES.getFloatingWindowProperties().setUseFrame(false);
  }

  private static void setViewTitleBarProperties() {
    ViewTitleBarProperties props = DEFAULT_VALUES.getViewProperties().getViewTitleBarProperties();

    props.setOrientation(Direction.UP).setDirection(Direction.RIGHT).getNormalProperties().setTitleVisible(true)
        .setIconVisible(true);

    ViewTitleBarStateProperties stateProps = props.getNormalProperties();

    stateProps.setButtonSpacing(0);

    stateProps.getUndockButtonProperties()
        .setFactory(DefaultButtonFactories.getUndockButtonFactory())
        .setVisible(true)
        .setTo(UndockWithAbortWindowAction.INSTANCE);

    stateProps.getDockButtonProperties()
        .setFactory(DefaultButtonFactories.getDockButtonFactory())
        .setVisible(true)
        .setTo(DockWithAbortWindowAction.INSTANCE);

    stateProps.getCloseButtonProperties()
        .setFactory(DefaultButtonFactories.getCloseButtonFactory())
        .setVisible(true)
        .setTo(CloseWithAbortWindowAction.INSTANCE);

    stateProps.getRestoreButtonProperties()
        .setFactory(DefaultButtonFactories.getRestoreButtonFactory())
        .setVisible(true)
        .setTo(RestoreViewWithAbortTitleBarAction.INSTANCE);

    stateProps.getMinimizeButtonProperties()
        .setFactory(DefaultButtonFactories.getMinimizeButtonFactory())
        .setVisible(true)
        .setTo(MinimizeWithAbortWindowAction.INSTANCE);

    stateProps.getMaximizeButtonProperties()
        .setFactory(DefaultButtonFactories.getMaximizeButtonFactory())
        .setVisible(true)
        .setTo(MaximizeWithAbortWindowAction.INSTANCE);

    stateProps.getMap().createRelativeRef(ViewTitleBarStateProperties.TITLE,
                                          DEFAULT_VALUES.getViewProperties().getMap(),
                                          ViewProperties.TITLE);

    stateProps.getMap().createRelativeRef(ViewTitleBarStateProperties.ICON,
                                          DEFAULT_VALUES.getViewProperties().getMap(),
                                          ViewProperties.ICON);
  }

  private static void updateVisualProperties() {
    DEFAULT_VALUES.getWindowBarProperties().getTabWindowProperties().getTabProperties().getTitledTabProperties()
        .getNormalProperties().getComponentProperties().setBackgroundColor(
        TabbedUIDefaults.getHighlightedStateBackground());

    Color shadowColor = UIManagerUtil.getColor("controlDkShadow", Color.BLACK);

    DEFAULT_VALUES.getWindowAreaProperties()
        .setBorder(new LineBorder(shadowColor))
        .setBackgroundColor(UIManagerUtil.getColor("Desktop.background", "control"));

    DEFAULT_VALUES.getWindowAreaShapedPanelProperties().setOpaque(true);

    DEFAULT_VALUES.getDragLabelProperties()
        .setBorder(new LineBorder(shadowColor))
        .setFont(UIManagerUtil.getFont("ToolTip.font"))
        .setForegroundColor(UIManagerUtil.getColor("ToolTip.foreground", "controlText"))
        .setBackgroundColor(UIManagerUtil.getColor("ToolTip.background", "control"));

    DEFAULT_VALUES
        .setRecursiveTabsEnabled(true);
  }

  private static void updateFont() {
    Font font = TitledTabProperties.getDefaultProperties().getHighlightedProperties().
        getComponentProperties().getFont();

    if (font != null)
      font = font.deriveFont(Font.BOLD);

    DEFAULT_VALUES.getTabWindowProperties().getTabProperties().getTitledTabProperties().
        getHighlightedProperties().getComponentProperties().setFont(font);
  }

  private static void updateViewTitleBarProperties() {
    ViewTitleBarProperties props = DEFAULT_VALUES.getViewProperties().getViewTitleBarProperties();
    Font font = TabbedUIDefaults.getFont();
    if (font != null)
      font = font.deriveFont(Font.BOLD);


    props.getNormalProperties().getComponentProperties().setFont(font).setForegroundColor(
        UIManager.getColor("InternalFrame.inactiveTitleForeground"))
        .setBackgroundColor(UIManager.getColor("InternalFrame.inactiveTitleBackground"))
        .setInsets(new Insets(2, 2, 2, 2));
    props.getFocusedProperties().getComponentProperties().setForegroundColor(
        UIManager.getColor("InternalFrame.activeTitleForeground"))
        .setBackgroundColor(UIManager.getColor("InternalFrame.activeTitleBackground"));

    Color c1 = UIManager.getColor("InternalFrame.inactiveTitleBackground");
    Color c2 = UIManager.getColor("InternalFrame.inactiveTitleGradient");
    ComponentPainter backgroundPainter;

    if (c1 == null)
      backgroundPainter = null;
    else if (c1.equals(c2) || c2 == null)
      backgroundPainter = new SolidColorComponentPainter(new FixedColorProvider(c1));
    else
      backgroundPainter = new GradientComponentPainter(c2, c2, c1, c1);
    props.getNormalProperties().getShapedPanelProperties().setComponentPainter(backgroundPainter).setOpaque(true);

    Color focused1 = UIManager.getColor("InternalFrame.activeTitleBackground");
    Color focused2 = UIManager.getColor("InternalFrame.activeTitleGradient");
    ComponentPainter focusedPainter;

    if (focused1 == null)
      focusedPainter = null;
    else if (focused1.equals(focused2) || focused2 == null)
      focusedPainter = new SolidColorComponentPainter(new FixedColorProvider(focused1));
    else
      focusedPainter = new GradientComponentPainter(focused2, focused2, focused1, focused1);
    props.getFocusedProperties().getShapedPanelProperties().setComponentPainter(focusedPainter);
    props.getFocusedProperties().getComponentProperties().setForegroundColor(
        UIManager.getColor("InternalFrame.activeTitleForeground"));

    props.setContentTitleBarGap(0).getNormalProperties().setIconTextGap(TabbedUIDefaults.getIconTextGap());
  }

  static {
    DEFAULT_VALUES = new RootWindowProperties(PROPERTIES.getDefaultMap());

    DEFAULT_VALUES
        .setAbortDragKey(TabbedPanelProperties.getDefaultProperties().getAbortDragKey())
        .setEdgeSplitDistance(6)
        .setDragRectangleBorderWidth(5);

    DEFAULT_VALUES.getShapedPanelProperties().setOpaque(true);

    DEFAULT_VALUES.getDockingWindowProperties()
        .setMaximizeEnabled(true)
        .setMinimizeEnabled(true)
        .setCloseEnabled(true)
        .setRestoreEnabled(true)
        .setDragEnabled(true)
        .setUndockEnabled(true)
        .setUndockOnDropEnabled(true)
        .setDockEnabled(true);

    DEFAULT_VALUES.getDockingWindowProperties().getDropFilterProperties()
        .setChildDropFilter(AcceptAllDropFilter.INSTANCE)
        .setInsertTabDropFilter(AcceptAllDropFilter.INSTANCE)
        .setInteriorDropFilter(AcceptAllDropFilter.INSTANCE)
        .setSplitDropFilter(AcceptAllDropFilter.INSTANCE);

    DEFAULT_VALUES.getWindowAreaProperties()
        .setInsets(new Insets(6, 6, 2, 2));

    DEFAULT_VALUES.getDragLabelProperties()
        .setInsets(new Insets(4, 6, 4, 6));

    DEFAULT_VALUES.getDragRectangleShapedPanelProperties().setOpaque(false);

    DEFAULT_VALUES.getSplitWindowProperties()
        .setContinuousLayoutEnabled(true)
        .setDividerSize(4)
        .setDividerLocationDragEnabled(true)
        .setDragIndicatorColor(Color.DARK_GRAY);

    DEFAULT_VALUES.getViewProperties().setAlwaysShowTitle(true);

    setTabbedPanelProperties();
    setTabProperties();
    setWindowBarProperties();
    setViewTitleBarProperties();
    setFloatingWindowProperties();

    updateVisualProperties();

    updateViewTitleBarProperties();

    updateFont();

    TitledTabProperties.getDefaultProperties().getHighlightedProperties().getComponentProperties().getMap().
        addListener(new PropertyMapListener() {
          public void propertyValuesChanged(PropertyMap propertyObject, Map changes) {
            updateFont();
          }
        });

    DynamicUIManager.getInstance().addListener(new DynamicUIManagerListener() {
      public void lookAndFeelChanged() {
        PropertyMapManager.runBatch(new Runnable() {
          public void run() {
            updateVisualProperties();
            updateViewTitleBarProperties();
          }
        });
      }

      public void propertiesChanged() {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -