Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/font/CSSFontManager.java')
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/font/CSSFontManager.java200
1 files changed, 0 insertions, 200 deletions
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/font/CSSFontManager.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/font/CSSFontManager.java
deleted file mode 100644
index 0297f9299..000000000
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/css2/font/CSSFontManager.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. and others.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.pagedesigner.css2.font;
-
-import org.eclipse.jst.pagedesigner.css2.ICSSStyle;
-import org.eclipse.jst.pagedesigner.css2.property.FontFamilyMeta;
-import org.eclipse.jst.pagedesigner.css2.property.FontSizeMeta;
-import org.eclipse.jst.pagedesigner.css2.property.FontWeightMeta;
-import org.eclipse.jst.pagedesigner.css2.property.ICSSPropertyID;
-import org.eclipse.jst.pagedesigner.css2.value.Length;
-import org.eclipse.jst.pagedesigner.utils.CacheManager;
-import org.eclipse.jst.pagedesigner.utils.ICacheEntryCreator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * @author mengbo
- */
-public class CSSFontManager implements ICSSFontManager {
- private static CSSFontManager _instance;
-
- private static final boolean DEBUG = false;
-
- private int _totalFont = 0;
-
- // private static FontPoolManager _fontPoolManager;
- // Map _cache = new HashMap();
-
- private static final int CACHESIZE = 100; // we cache 100 font.
-
- // the scale to convert the px to pt.
- private final static double FONT_SCALE = ((double) Display.getCurrent()
- .getDPI().x) / 72;
-
- static String cssFontToLocalFont(String original) {
- if ("serif".equalsIgnoreCase(original)) { //$NON-NLS-1$
- return "Georgia"; //$NON-NLS-1$
- } else if ("sans-serif".equalsIgnoreCase(original)) { //$NON-NLS-1$
- return "Arial"; //$NON-NLS-1$
- } else if ("cursive".equalsIgnoreCase(original)) { //$NON-NLS-1$
- // FIXME: MS windows does not support the alternative fonts that
- // match cursive defined at
- // http://www.w3.org/TR/REC-CSS2/fonts.html#generic-font-families,
- // We use Comic Sans MS font family
- // because it is MS alternative.
- return "Comic Sans MS"; //$NON-NLS-1$
- } else if ("fantasy".equalsIgnoreCase(original)) { //$NON-NLS-1$
- return cssFontToLocalFont("serif"); //$NON-NLS-1$
- } else if ("monospace".equalsIgnoreCase(original)) { //$NON-NLS-1$
- return "Courier New"; //$NON-NLS-1$
- } else {
- return original;
- }
- }
-
- private CacheManager _cacheManager = new CacheManager(
- new ICacheEntryCreator<CSSFont, Font>() {
- public Font createEntry(CSSFont key) {
- if (DEBUG) {
- _totalFont++;
- System.out.println("TotalFont++: " + _totalFont); //$NON-NLS-1$
- }
- Font font = new Font(null, cssFontToLocalFont(key
- .getFontFamily()), (int) Math.round(key
- .getFontSize()
- / FONT_SCALE), key.getSwtFontStyle());
- return font;
- }
-
- public void dispose(CSSFont key, Font entry) {
- if (DEBUG) {
- _totalFont--;
- System.out.println("TotalFont--: " + _totalFont); //$NON-NLS-1$
- }
- entry.dispose();
-
- }
- }, CACHESIZE);
-
- /**
- * constructor
- */
- private CSSFontManager() {
- super();
- }
-
- private String resolveFontStyleString(ICSSStyle style) {
- StringBuffer sb = new StringBuffer();
- sb.append(ICSSPropertyID.ATTR_FONT_FAMILY).append(":"); //$NON-NLS-1$
- sb.append("'").append( //$NON-NLS-1$
- (String) style
- .getStyleProperty(ICSSPropertyID.ATTR_FONT_FAMILY))
- .append("'"); //$NON-NLS-1$
- sb.append(";"); //$NON-NLS-1$
- sb.append(ICSSPropertyID.ATTR_FONT_STYLE).append(":"); //$NON-NLS-1$
- sb
- .append(
- (String) style
- .getStyleProperty(ICSSPropertyID.ATTR_FONT_STYLE))
- .append(";"); //$NON-NLS-1$
- sb.append(ICSSPropertyID.ATTR_FONT_WEIGHT).append(":"); //$NON-NLS-1$
- sb.append(
- ((Integer) style
- .getStyleProperty(ICSSPropertyID.ATTR_FONT_WEIGHT))
- .toString()).append(";"); //$NON-NLS-1$
- sb.append(ICSSPropertyID.ATTR_FONT_SIZE).append(":"); //$NON-NLS-1$
- int fontSize = getFontSize(style, style
- .getStyleProperty(ICSSPropertyID.ATTR_FONT_SIZE));
- sb.append(Integer.toString(fontSize));
- return sb.toString();
- }
-
- public ICSSFont createFont(ICSSStyle style) {
- String fontfamily = (String) style
- .getStyleProperty(ICSSPropertyID.ATTR_FONT_FAMILY);
- Object fontsizeobj = style
- .getStyleProperty(ICSSPropertyID.ATTR_FONT_SIZE);
- int fontsize;
- fontsize = getFontSize(style, fontsizeobj);
- int fontstyle = getFontStyle(style);
- int fontweight = ((Integer) style
- .getStyleProperty(ICSSPropertyID.ATTR_FONT_WEIGHT)).intValue();
-
- return new CSSFont(fontfamily, fontsize, fontstyle, fontweight,
- resolveFontStyleString(style));
- }
-
- private int getFontSize(ICSSStyle style, Object fontsizeobj) {
- int fontsize;
- if (fontsizeobj instanceof Length) {
- fontsize = ((Length) fontsizeobj).getValue();
- } else {
- fontsize = style.getParentStyle().getCSSFont().getFontSize();
- }
- return fontsize;
- }
-
- /**
- * @param style
- */
- private int getFontStyle(ICSSStyle style) {
- int fontstyle;
- String fontstylestr = (String) style
- .getStyleProperty(ICSSPropertyID.ATTR_FONT_STYLE);
- if (ICSSPropertyID.VAL_ITALIC.equals(fontstylestr)
- || ICSSPropertyID.VAL_OBLIQUE.equals(fontstylestr)) {
- fontstyle = SWT.ITALIC;
- } else {
- fontstyle = SWT.NORMAL;
- }
- return fontstyle;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.pagedesigner.css2.font.ICSSFontManager#dispose()
- */
- public void dispose() {
- _cacheManager.disposeAll();
- }
-
- /**
- * @return the default css font
- */
- public ICSSFont createDefaultFont() {
- CSSFont result = new CSSFont(FontFamilyMeta.DEFAULT_FONT,
- (int) FontSizeMeta.MEDIUM_VAL_INT, SWT.NORMAL,
- FontWeightMeta.NORMAL_WEIGHT.intValue(), ""); //$NON-NLS-1$
- return result;
- }
-
- /**
- * @param f
- * @return the swt font for f
- */
- public Font getSwtFont(CSSFont f) {
- return (Font) _cacheManager.getEntry(f);
- }
-
- /**
- * @return the singleton font manager
- */
- public static CSSFontManager getInstance() {
- if (_instance == null) {
- _instance = new CSSFontManager();
- }
- return _instance;
- }
-}

Back to the top