@Override public Object getValueForState(RemoteValueState state, Object originalValue) { if (originalValue instanceof String && FontHelper.isFontSpec((String) originalValue)) { return FontHelper.fromString((String) originalValue); } return null; } };
@Override public Object getValueFromState(RemoteValueState state, Object originalValue) { if (originalValue instanceof Font) { return FontHelper.toString((Font) originalValue); } return null; }
private Font createFont(String fontString) { Font font = FontHelper.fromString(fontString); return font; }
/** * Adjusts a component various sizes (e.g. min, max, preferred) based on a * formatter and a template value. * * @param component * the component to adjust the sizes for. * @param formatter * the formatter used if any. * @param templateValue * the template value used. * @param viewDescriptor * the underlying view descriptor. * @param extraWidth * the extra size to be added. */ protected void adjustSizes(IViewDescriptor viewDescriptor, JComponent component, IFormatter<?, String> formatter, Object templateValue, int extraWidth) { if (viewDescriptor.getFont() != null && FontHelper.isFontSpec(viewDescriptor.getFont())) { // must set font before computing size. component.setFont(createFont(viewDescriptor.getFont(), component.getFont())); } int preferredWidth = computePixelWidth(component, getFormatLength(formatter, templateValue)) + extraWidth; Dimension size = new Dimension(preferredWidth, component.getPreferredSize().height); component.setMinimumSize(size); component.setPreferredSize(size); component.setMaximumSize(size); }
static Font createFont(String fontString, Font defaultFont) { org.jspresso.framework.util.gui.Font font = FontHelper.fromString(fontString); int fontStyle; if (font.isBold() && font.isItalic()) { fontStyle = Font.BOLD | Font.ITALIC; } else if (font.isBold()) { fontStyle = Font.BOLD; } else if (font.isItalic()) { fontStyle = Font.ITALIC; } else { fontStyle = Font.PLAIN; } if (font.getName() == null || font.getName().length() == 0) { font.setName(defaultFont.getName()); } if (font.getSize() < 0) { font.setSize(defaultFont.getSize()); } return new Font(font.getName(), fontStyle, font.getSize()); }
private void configureComponent(JComponent viewPeer, IViewDescriptor viewDescriptor, IActionHandler actionHandler, Locale locale) { if (viewDescriptor.getForeground() != null) { viewPeer.setForeground(createColor(viewDescriptor.getForeground())); } if (viewDescriptor.getBackground() != null) { viewPeer.setBackground(createColor(viewDescriptor.getBackground())); } if (viewDescriptor.getFont() != null && FontHelper.isFontSpec(viewDescriptor.getFont())) { viewPeer.setFont(createFont(viewDescriptor.getFont(), viewPeer.getFont())); } String viewDescription = computeViewDescription(viewDescriptor, actionHandler, locale); if (viewDescription != null && viewDescription.length() > 0) { viewPeer.setToolTipText(viewDescription); } }
private SFont createFont(String fontString, SFont defaultFont) { SFont actualDefaultFont; if (defaultFont != null) { actualDefaultFont = defaultFont; } else { actualDefaultFont = DEFAULT_FONT; } org.jspresso.framework.util.gui.Font font = FontHelper .fromString(fontString); int fontStyle; if (font.isBold() && font.isItalic()) { fontStyle = SFont.BOLD | SFont.ITALIC; } else if (font.isBold()) { fontStyle = SFont.BOLD; } else if (font.isItalic()) { fontStyle = SFont.ITALIC; } else { fontStyle = SFont.PLAIN; } if (font.getName() == null || font.getName().length() == 0) { font.setName(actualDefaultFont.getFace()); } if (font.getSize() < 0) { font.setSize(actualDefaultFont.getSize()); } return new SFont(font.getName(), fontStyle, font.getSize()); }
/** * {@inheritDoc} */ @Override protected void finishComponentConfiguration(IView<RComponent> view, IActionHandler actionHandler, Locale locale) { RComponent viewPeer = view.getPeer(); IViewDescriptor viewDescriptor = view.getDescriptor(); viewPeer.setLabel(viewDescriptor.getI18nName(actionHandler, locale)); String viewDescription = computeViewDescription(viewDescriptor, actionHandler, locale); viewPeer.setToolTip(viewDescription); if (viewDescriptor.getForeground() != null && ColorHelper.isColorSpec(viewDescriptor.getForeground())) { viewPeer.setForeground(viewDescriptor.getForeground()); } if (viewDescriptor.getBackground() != null && ColorHelper.isColorSpec(viewDescriptor.getBackground())) { viewPeer.setBackground(viewDescriptor.getBackground()); } if (viewDescriptor.getFont() != null && FontHelper.isFontSpec(viewDescriptor.getFont())) { viewPeer.setFont(createFont(viewDescriptor.getFont())); } if (viewDescriptor.getIcon() != null) { viewPeer.setIcon(getIconFactory().getIcon(viewDescriptor.getIcon(), getIconFactory().getSmallIconSize())); } else { viewPeer.setIcon(null); } if (viewDescriptor.getStyleName() != null) { viewPeer.setStyleName(viewDescriptor.getStyleName()); } viewPeer.setCollapsible(viewDescriptor.isCollapsible()); viewPeer.setCollapsed(viewDescriptor.isCollapsed()); }