Author: lgiessmann Date: Fri Jul 8 13:00:49 2011 New Revision: 589
Log: gdl-frontend: Widgets: fixed a bug in GdlVisibleObject.replaceStyleProperty(...), since GWT does not handle String.matches(...)
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TestClass.java
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java Fri Jul 8 10:29:08 2011 (r588) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java Fri Jul 8 13:00:49 2011 (r589) @@ -11,6 +11,7 @@ import us.isidor.gdl.anaToMia.Widgets.environment.InvalidGdlSchemaException; import us.isidor.gdl.anaToMia.Widgets.environment.MultipleHandlerRegistration; import us.isidor.gdl.anaToMia.Widgets.environment.Pair; +import us.isidor.gdl.anaToMia.Widgets.environment.Pattern; import us.isidor.gdl.anaToMia.Widgets.values.AutoNumUnitValue; import us.isidor.gdl.anaToMia.Widgets.values.AutoNumValue; import us.isidor.gdl.anaToMia.Widgets.values.BorderStyleValue; @@ -105,15 +106,19 @@ public static void replaceStyleProperty(Element elem, String styleName, String styleValue){ String oldStyle = elem.getAttribute("style"); - //Window.alert(">> _" + oldStyle + "_<<" + " >> _" + styleName + "_<< => " + oldStyle.matches("(^| |;)" + styleName + " *:")); // TODO: remove - if(oldStyle.matches("(^| |;)" + styleName + " *:")){ - Window.alert("!!!TEST!!!"); - - elem.setAttribute("style", oldStyle.replaceFirst(styleName + ":.+;", styleName + ": " + styleValue + ";")); - } else { - elem.setAttribute("style", oldStyle + " " + styleName + ": " + styleValue + ";"); - } - + String newValue = styleName + ": " + styleValue + ";"; + + Pattern pattern1 = new Pattern("(^| )" + styleName + " *:[^;]"); + Pattern pattern2 = new Pattern(";" + styleName + " *:[^;]"); + if(pattern1.matches(oldStyle)){ + elem.setAttribute("style", oldStyle.replaceFirst(pattern1.pattern(), newValue)); + }else if(pattern2.matches(oldStyle)){ + elem.setAttribute("style", oldStyle.replaceFirst(pattern1.pattern(), ";" + newValue)); + }else{ + String valueToAppend = styleName + ": " + styleValue + ";"; + if(oldStyle.length() == 0) valueToAppend = " " + valueToAppend; + elem.setAttribute("style", oldStyle + valueToAppend); + } }
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TestClass.java ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TestClass.java Fri Jul 8 10:29:08 2011 (r588) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TestClass.java Fri Jul 8 13:00:49 2011 (r589) @@ -123,20 +123,6 @@ GdlTitle tmp = new GdlTitle(tmpRepresentative); this.mainPanel.add(tmp); - - - - - String oldStyle = "margin: 0px; width: 300px; max-idth: auto; min-width: auto; height: 300px; max-height: auto; min-height: auto; color: #000000; direction: rtl; text-align: left; line-height: normal; text-decoration: underline; font-style: normal; font-size: 15pt; font-weight: NORMAL; letter-spacing: normal; word-spacing: normal; font-size: 25pt; font-size: 25pt; width: 300px; max-idth: auto; min-width: auto; height: 300px; max-height: auto; min-height: auto; color: #000000; direction: rtl; text-align: left; line-height: ... word-spacing: normal; font-size: 25pt; font-size: 25pt; font-size: 25pt; font-size: 25pt; font-size: 25pt; font-size: 25pt; font-size: 25pt; font-size: 25pt; font-size: 25pt; font-size: 25pt; font-size: 25pt; width: 300px; max-idth: auto; min-width: auto; height: 300px; max-height: auto; min-height: auto; color: #000000; direction: rtl; text-align: left; line-height: normal; text-decoration: underline; font-style: normal; font-size: 15pt; font-weight: NORMAL; letter-spacing: normal; word-spacing: normal;"; - - /* - String rex = "width"; - Window.alert(" ==> " + oldStyle.matches("width")); - Window.alert(oldStyle.replaceAll(" width:[^;]*;", " WIDTH:xyz;")); - */ - - Pattern pattern = new Pattern("width"); - Window.alert(">> " + pattern.matches(oldStyle)); }catch(Exception e){ e.printStackTrace(); Window.alert(">> e >> " + e.getClass() + " >> " + e.getMessage());