2009-11-06 23:30:29 -02:00

163 lines
4.5 KiB
Java

/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* $Id: file 64488 2006-03-10 17:32:09Z paulo $
*/
package com.wisemapping.xml;
public class Style {
private float width;
private float height;
private String left;
private String top;
private float fontSize;
private String fontFamily;
private String color;
private String fontWidth;
private boolean isVisible = true;
public boolean isVisible() {
return isVisible;
}
public void setVisible(boolean visible) {
isVisible = visible;
}
public static Style parse(final String styleValue) {
Style result = new Style();
String[] strings = styleValue.split(";");
for (String style : strings) {
final String key = style.substring(0, style.indexOf(":"));
String value = style.substring(style.indexOf(":") + 1, style.length());
value = value.trim();
if (key.trim().equals("WIDTH")) {
result.setWidth(parseFloat(value));
} else if (key.trim().equals("HEIGHT")) {
result.setHeight(parseFloat(value));
}
if (key.trim().equals("TOP")) {
result.setTop(removeUnit(value));
} else if (key.trim().equals("LEFT")) {
result.setLeft(removeUnit(value));
} else if (key.trim().equals("FONT")) {
final String[] fontValues = value.split(" ");
if (fontValues.length == 3) {
result.setFontWidth(fontValues[0]);
result.setFontSize(parseFloat(fontValues[1]));
result.setFontFamily(fontValues[2]);
} else if (fontValues.length == 2) {
result.setFontSize(parseFloat(fontValues[0]));
result.setFontFamily(fontValues[1]);
}
} else if (key.trim().equals("COLOR")) {
result.setColor(value);
} else if (key.trim().equals("VISIBILITY")) {
result.setVisible(!"hidden".equals(value));
}
}
return result;
}
private void setFontWidth(String v) {
this.fontWidth = v;
}
private void setColor(String value) {
this.color = value;
}
public float getHeight() {
return height;
}
public void setHeight(float height) {
this.height = height;
}
public float getWidth() {
return width;
}
public void setWidth(float width) {
this.width = width;
}
public static String removeUnit(String value) {
String number;
if (value.indexOf("px") != -1 || value.indexOf("pt") != -1) {
number = value.substring(0, value.length() - 2);
} else {
number = value;
}
return number;
}
public static float parseFloat(String value) {
String number = removeUnit(value);
return Float.parseFloat(number);
}
public String getLeft() {
return left;
}
public void setLeft(String left) {
this.left = left;
}
public String getTop() {
return top;
}
public void setTop(String top) {
this.top = top;
}
public float getFontSize() {
return fontSize;
}
public void setFontSize(float fontSize) {
this.fontSize = fontSize;
}
public String getFontFamily() {
return fontFamily;
}
public void setFontFamily(String fontFamily) {
this.fontFamily = fontFamily;
}
public String getColor() {
return this.color;
}
public String getFontWidth() {
return fontWidth;
}
}