-
Notifications
You must be signed in to change notification settings - Fork 297
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
280 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
108 changes: 108 additions & 0 deletions
108
...able-grid-parent/editable-grid/src/main/java/org/wicketstuff/egrid/attribute/Options.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
package org.wicketstuff.egrid.attribute; | ||
|
||
|
||
import java.io.Serializable; | ||
import java.util.LinkedHashMap; | ||
import java.util.Map; | ||
import java.util.Map.Entry; | ||
|
||
|
||
public class Options implements Serializable { | ||
|
||
private static final long serialVersionUID = 1L; | ||
|
||
private Map<String, String> options = new LinkedHashMap<String, String>(); | ||
|
||
public Options() { | ||
super(); | ||
} | ||
|
||
public boolean isEmpty() { | ||
return this.options.isEmpty(); | ||
} | ||
|
||
public String get(String key) { | ||
return options.get(key); | ||
} | ||
|
||
public int getInt(String key) { | ||
return Integer.valueOf(this.options.get(key)); | ||
} | ||
|
||
|
||
public short getShort(String key) { | ||
return Short.valueOf(this.options.get(key)); | ||
} | ||
|
||
public float getFloat(String key) { | ||
return Float.valueOf(this.options.get(key)); | ||
} | ||
|
||
public boolean getBoolean(String key) { | ||
|
||
return Boolean.valueOf(this.options.get(key)); | ||
} | ||
|
||
public Options put(String key, String value) { | ||
this.options.put(key, value); | ||
return this; | ||
} | ||
|
||
public Options put(String key, int value) { | ||
this.options.put(key, String.valueOf(value)); | ||
return this; | ||
} | ||
|
||
public Options put(String key, float value) { | ||
this.options.put(key, String.valueOf(value)); | ||
return this; | ||
} | ||
|
||
public Options put(String key, boolean value) { | ||
this.options.put(key, String.valueOf(value)); | ||
return this; | ||
} | ||
|
||
public void removeOption(String key) { | ||
this.options.remove(key); | ||
} | ||
|
||
public String getJavaScriptOptions() { | ||
StringBuffer sb = new StringBuffer("{"); | ||
int count = 0; | ||
|
||
for (Entry<String, String> entry : this.options.entrySet()) { | ||
String key = entry.getKey(); | ||
sb.append(key); | ||
sb.append(":"); | ||
sb.append(entry.getValue()); | ||
if (count < this.options.size() - 1) { | ||
sb.append(",\n"); | ||
} | ||
count++; | ||
} | ||
|
||
return sb.append("}").toString(); | ||
} | ||
|
||
public String getCSSOptions() { | ||
StringBuffer sb = new StringBuffer(); | ||
int count = 0; | ||
|
||
for (Entry<String, String> entry : this.options.entrySet()) { | ||
String key = entry.getKey(); | ||
sb.append(key); | ||
sb.append(":"); | ||
sb.append(entry.getValue()); | ||
if (count < this.options.size() - 1) { | ||
sb.append("; "); | ||
} | ||
count++; | ||
} | ||
return sb.toString(); | ||
} | ||
|
||
public boolean containsKey(Object key) { | ||
return this.options.containsKey(key); | ||
} | ||
} |
111 changes: 111 additions & 0 deletions
111
...id-parent/editable-grid/src/main/java/org/wicketstuff/egrid/attribute/StyleAttribute.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
package org.wicketstuff.egrid.attribute; | ||
|
||
import java.io.Serializable; | ||
|
||
public class StyleAttribute implements Serializable { | ||
|
||
private static final long serialVersionUID = 1L; | ||
|
||
public static final String HEIGHT = "height"; | ||
public static final String WIDTH = "width"; | ||
public static final String DISPLAY = "display"; | ||
public static final String VISIBILITY = "visibility"; | ||
public static final String TOP = "top"; | ||
public static final String LEFT = "left"; | ||
public static final String TEXT_ALIGN = "text-align"; | ||
public static final String COLOR = "color"; | ||
public static final String FONT_WEIGHT = "font-weight"; | ||
public static final String FONT_SIZE = "font-size"; | ||
|
||
public static final String ALIGN_CENTER = "center"; | ||
public static final String ALIGN_RIGHT = "right"; | ||
public static final String ALIGN_LEFT = "left"; | ||
|
||
public static final String FONT_BOLD = "bold"; | ||
|
||
private Options styleOptions = null; | ||
|
||
public StyleAttribute() { | ||
super(); | ||
styleOptions = new Options(); | ||
} | ||
|
||
public final StyleAttribute setTop(final String top) { | ||
put(TOP, top); | ||
return this; | ||
} | ||
|
||
public final StyleAttribute setLeft(final String left) { | ||
put(LEFT, left); | ||
return this; | ||
} | ||
|
||
public final StyleAttribute setHeight(final String height) { | ||
put(HEIGHT, height); | ||
return this; | ||
} | ||
|
||
public final StyleAttribute setWidth(final String width) { | ||
put(WIDTH, width); | ||
return this; | ||
} | ||
|
||
public final StyleAttribute setDisplay(final String display) { | ||
put(DISPLAY, display); | ||
return this; | ||
} | ||
|
||
public final StyleAttribute setVisibility(final String visibility) { | ||
put(VISIBILITY, visibility); | ||
return this; | ||
} | ||
public final StyleAttribute setTextAlign(final String alignment) { | ||
put(TEXT_ALIGN, alignment); | ||
return this; | ||
} | ||
|
||
public final StyleAttribute setColor(final String color) { | ||
put(COLOR, color); | ||
return this; | ||
} | ||
public final StyleAttribute setRedColor() { | ||
put(COLOR, "red"); | ||
return this; | ||
} | ||
|
||
public final StyleAttribute setFontWeight(final String fontWeight){ | ||
put(FONT_WEIGHT, fontWeight); | ||
return this; | ||
} | ||
|
||
public final StyleAttribute setFontSize(final int size) { | ||
put(TOP, size + "px"); | ||
return this; | ||
} | ||
|
||
public final StyleAttribute setBoldFont() { | ||
put(FONT_WEIGHT, FONT_BOLD); | ||
return this; | ||
} | ||
|
||
public final StyleAttribute alignCenter() { | ||
setTextAlign(ALIGN_CENTER); | ||
return this; | ||
} | ||
public final StyleAttribute alignLeft() { | ||
setTextAlign(ALIGN_LEFT); | ||
return this; | ||
} | ||
public final StyleAttribute alignRight() { | ||
setTextAlign(ALIGN_RIGHT); | ||
return this; | ||
} | ||
|
||
public final String getStyles() { | ||
return styleOptions.getCSSOptions(); | ||
} | ||
|
||
public final void put(final String attribute, final String value) { | ||
styleOptions.put(attribute, value); | ||
} | ||
} |
60 changes: 60 additions & 0 deletions
60
...nt/editable-grid/src/main/java/org/wicketstuff/egrid/behavior/StyleAttributeBehavior.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
package org.wicketstuff.egrid.behavior; | ||
|
||
import org.apache.wicket.Component; | ||
import org.apache.wicket.behavior.Behavior; | ||
import org.apache.wicket.markup.ComponentTag; | ||
import org.apache.wicket.util.io.IClusterable; | ||
import org.apache.wicket.util.string.Strings; | ||
import org.wicketstuff.egrid.attribute.HTMLAttribute; | ||
import org.wicketstuff.egrid.attribute.StyleAttribute; | ||
|
||
public class StyleAttributeBehavior extends Behavior implements IClusterable { | ||
|
||
private static final long serialVersionUID = 1L; | ||
|
||
private static final String EMPTY = ""; | ||
private static final String SEPERATOR_SPACE = " "; | ||
private static final String SEPERATOR_COLON = ":"; | ||
private static final String SEPERATOR_SEMI_COLON = ";"; | ||
|
||
private StyleAttribute styleAttribute; | ||
|
||
public StyleAttributeBehavior(final StyleAttribute styleAttribute) { | ||
|
||
if (styleAttribute == null) { | ||
throw new IllegalArgumentException("Argument [styleAttribute] cannot be null"); | ||
} | ||
this.styleAttribute = styleAttribute; | ||
} | ||
|
||
public final void onComponentTag(final Component component, final ComponentTag tag) { | ||
super.onComponentTag(component, tag); | ||
|
||
String existingStyles = (String) tag.getAttributes().get(HTMLAttribute.STYLE); | ||
putExistingStyles(existingStyles); | ||
|
||
onStyleAttribute(this.styleAttribute); | ||
|
||
String styles = this.styleAttribute.getStyles(); | ||
if (!Strings.isEmpty(styles)) { | ||
tag.put(HTMLAttribute.STYLE, styles); | ||
} | ||
} | ||
|
||
private void putExistingStyles(final String styleAtt) { | ||
|
||
if (styleAtt != null) { | ||
String[] items = styleAtt.split(SEPERATOR_SEMI_COLON); | ||
for (int i = 0; i < items.length; i++) { | ||
String item = items[i]; | ||
this.styleAttribute.put( | ||
item.substring(0, item.indexOf(SEPERATOR_COLON)).replaceAll(SEPERATOR_SPACE, EMPTY), | ||
item.substring(item.indexOf(SEPERATOR_COLON) + 1, item.length()).replaceAll(SEPERATOR_SPACE, EMPTY)); | ||
} | ||
} | ||
} | ||
|
||
protected void onStyleAttribute(final StyleAttribute styleAttribute) { | ||
|
||
} | ||
} |