Package org.pushingpixels.flamingo.api.common.icon

Examples of org.pushingpixels.flamingo.api.common.icon.ResizableIcon


    JSeparator jsep = new JSeparator(JSeparator.VERTICAL);
    int layoutHGap = 2 * FlamingoUtilities.getHLayoutGap(commandButton);
    int layoutVGap = 2 * FlamingoUtilities.getVLayoutGap(commandButton);

    ResizableIcon buttonIcon = commandButton.getIcon();
    boolean ltr = commandButton.getComponentOrientation().isLeftToRight();

    if (ltr) {
      int x = ins.left;
      // medium icon, 1-line text, 1-line extra text and action arrow
      result.iconRect.x = x;
      result.iconRect.y = ins.top + layoutVGap;
      result.iconRect.width = buttonIcon.getIconWidth();
      result.iconRect.height = buttonIcon.getIconHeight();

      x += buttonIcon.getIconWidth();
      if (buttonKind == JCommandButton.CommandButtonKind.ACTION_AND_POPUP_MAIN_POPUP) {
        result.actionClickArea.x = 0;
        result.actionClickArea.y = 0;
        result.actionClickArea.width = x + layoutHGap;
        result.actionClickArea.height = height;

        result.popupClickArea.x = x + layoutHGap;
        result.popupClickArea.y = 0;
        result.popupClickArea.width = width - x - layoutHGap;
        result.popupClickArea.height = height;

        result.separatorOrientation = CommandButtonSeparatorOrientation.VERTICAL;
        result.separatorArea = new Rectangle();
        result.separatorArea.x = x + layoutHGap;
        result.separatorArea.y = 0;
        result.separatorArea.width = new JSeparator(JSeparator.VERTICAL)
            .getPreferredSize().width;
        result.separatorArea.height = height;

        result.isTextInActionArea = false;
      }
      x += 2 * layoutHGap + jsep.getPreferredSize().width;

      TextLayoutInfo lineLayoutInfo = new TextLayoutInfo();
      lineLayoutInfo.text = commandButton.getText();
      lineLayoutInfo.textRect = new Rectangle();

      lineLayoutInfo.textRect.x = x;
      lineLayoutInfo.textRect.y = ins.top + layoutVGap / 2;
      lineLayoutInfo.textRect.width = fm.stringWidth(commandButton
          .getText());
      lineLayoutInfo.textRect.height = labelHeight;

      result.textLayoutInfoList = new ArrayList<TextLayoutInfo>();
      result.textLayoutInfoList.add(lineLayoutInfo);

      String extraText = commandButton.getExtraText();
      if ((extraText == null) || (extraText.length() == 0)) {
        lineLayoutInfo.textRect.y = (height - labelHeight) / 2;
      } else {
        AttributedString attributedDescription = new AttributedString(
            commandButton.getExtraText());
        attributedDescription.addAttribute(TextAttribute.FONT, g
            .getFont());
        LineBreakMeasurer lineBreakMeasurer = new LineBreakMeasurer(
            attributedDescription.getIterator(), ((Graphics2D) g)
                .getFontRenderContext());
        // The max width of the extra text line - need to leave
        // space for the popup arrow icon
        int maxFirstExtraLineWidth = width - x - ins.right - layoutHGap
            - labelHeight;
        int breakIndex = lineBreakMeasurer
            .nextOffset(maxFirstExtraLineWidth);

        TextLayoutInfo extraLineLayoutInfo1 = new TextLayoutInfo();
        extraLineLayoutInfo1.text = commandButton.getExtraText()
            .substring(0, breakIndex);
        extraLineLayoutInfo1.textRect = new Rectangle();

        extraLineLayoutInfo1.textRect.x = x;
        extraLineLayoutInfo1.textRect.y = ins.top + layoutVGap
            + labelHeight;
        extraLineLayoutInfo1.textRect.width = fm
            .stringWidth(extraLineLayoutInfo1.text);
        extraLineLayoutInfo1.textRect.height = labelHeight;

        TextLayoutInfo extraLineLayoutInfo2 = new TextLayoutInfo();
        extraLineLayoutInfo2.text = commandButton.getExtraText()
            .substring(breakIndex);
        extraLineLayoutInfo2.textRect = new Rectangle();

        extraLineLayoutInfo2.textRect.x = x;
        extraLineLayoutInfo2.textRect.y = ins.top + layoutVGap + 2
            * labelHeight;
        extraLineLayoutInfo2.textRect.width = fm
            .stringWidth(extraLineLayoutInfo2.text);
        extraLineLayoutInfo2.textRect.height = labelHeight;

        result.extraTextLayoutInfoList = new ArrayList<TextLayoutInfo>();
        result.extraTextLayoutInfoList.add(extraLineLayoutInfo1);
        result.extraTextLayoutInfoList.add(extraLineLayoutInfo2);
      }

      x += fm.getStringBounds(commandButton.getText(), g).getWidth();
      if (buttonKind == JCommandButton.CommandButtonKind.ACTION_AND_POPUP_MAIN_ACTION) {
        // popup click areas are right aligned
        result.actionClickArea.x = 0;
        result.actionClickArea.y = 0;
        result.actionClickArea.width = width - ins.right - labelHeight;
        result.actionClickArea.height = height;

        result.popupClickArea.x = width - ins.right - labelHeight;
        result.popupClickArea.y = 0;
        result.popupClickArea.width = labelHeight + ins.right;
        result.popupClickArea.height = height;

        result.separatorOrientation = CommandButtonSeparatorOrientation.VERTICAL;
        result.separatorArea = new Rectangle();
        result.separatorArea.x = width - ins.right - labelHeight;
        result.separatorArea.y = 0;
        result.separatorArea.width = new JSeparator(JSeparator.VERTICAL)
            .getPreferredSize().width;
        result.separatorArea.height = height;
        result.isTextInActionArea = true;
      }

      if (FlamingoUtilities.hasPopupAction(commandButton)) {
        result.popupActionRect.x = width - ins.right - labelHeight * 3
            / 4;
        result.popupActionRect.y = (height - labelHeight) / 2 - 1;
        result.popupActionRect.width = 1 + labelHeight / 2;
        result.popupActionRect.height = labelHeight + 2;
      }
    } else {
      int x = commandButton.getWidth() - ins.right;
      // medium icon, 1-line text, 1-line extra text and action arrow
      result.iconRect.x = x - buttonIcon.getIconWidth();
      result.iconRect.y = ins.top + layoutVGap;
      result.iconRect.width = buttonIcon.getIconWidth();
      result.iconRect.height = buttonIcon.getIconHeight();

      x -= buttonIcon.getIconWidth();
      if (buttonKind == JCommandButton.CommandButtonKind.ACTION_AND_POPUP_MAIN_POPUP) {
        result.actionClickArea.x = x + layoutHGap;
        result.actionClickArea.y = 0;
        result.actionClickArea.width = width - x - layoutHGap;
        result.actionClickArea.height = height;
View Full Code Here


  public AbstractCommandButton createRibbonButton(final String name)
      throws MissingResourceException, ResourceFormatException,
      MissingListenerException {
   
    // Icon
    ResizableIcon icon=null;
    try {
      String s = getString(name + ICON_SUFFIX);
      icon =  IconManager.getRibbonIcon(s);
    } catch (MissingResourceException e) {
    }
View Full Code Here

    return getRibbonIcon(key,24,24);
  }
  public static ResizableIcon getRibbonIcon(String name, int width , int height) {
//    String key=name+"-"+width+"-"+height;
//    ResizableIcon icon = (ResizableIcon) ribbonIcons.get(key); //don't store
    ResizableIcon icon=null;
//    if (icon == null) {
      URL url = getURL(name);
      if (url == null)
        return null;
      icon = ImageWrapperResizableIcon.getIcon(url, new Dimension(width, height));
View Full Code Here

    JRibbonApplicationMenuButton appMenuButton = getApplicationMenuButton(ribbonFrame);
    if (appMenuButton == null) {
      return;
    }

    ResizableIcon appIcon = ribbonFrame.getApplicationIcon();
    if (appIcon != null) {
      appMenuButton.setIcon(appIcon);
    }
  }
View Full Code Here

TOP

Related Classes of org.pushingpixels.flamingo.api.common.icon.ResizableIcon

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.