package org.korsakow.ide.ui.interfacebuilder.widget; import java.awt.Color; import javax.swing.JLabel; import org.korsakow.ide.lang.LanguageBundle; import org.korsakow.ide.resources.WidgetType; import org.korsakow.ide.resources.property.BooleanProperty; import org.korsakow.ide.resources.property.IntegerProperty; import org.korsakow.ide.resources.property.StringProperty; import org.korsakow.ide.resources.widget.WidgetComponent; import org.korsakow.ide.resources.widget.WidgetModel; import org.korsakow.ide.resources.widget.WidgetPropertiesEditor; import org.korsakow.ide.resources.widget.editors.ScrubberWidgetEditor; import org.korsakow.services.util.ColorFactory; public class Scrubber extends WidgetModel { private static class ScrubberWidgetComponent extends WidgetComponent { public ScrubberWidgetComponent(WidgetModel owner) { super(owner); } @Override protected void initUI() { super.initUI(); add(new JLabel(LanguageBundle.getString("widget.scrubber.label"))); setSize(720, 15); } } private String foregroundColor = ColorFactory.formatCSS(Color.white); private String backgroundColor = ColorFactory.formatCSS(Color.black); private String loadingColor = ColorFactory.formatCSS(new Color(221, 221, 221)); private Integer barWidth = 5; private Integer barHeight = 5; private boolean interactive = false; private boolean loading = true; public Scrubber() { super(WidgetType.Scrubber); addProperty(new StringProperty("foregroundColor") { @Override public String getValue() { return foregroundColor; } @Override public void setValue(String value) { foregroundColor = value; } }); addProperty(new StringProperty("backgroundColor") { @Override public String getValue() { return backgroundColor; } @Override public void setValue(String value) { backgroundColor = value; } }); addProperty(new StringProperty("loadingColor") { @Override public String getValue() { return loadingColor; } @Override public void setValue(String value) { loadingColor = value==null?"#dddddd":value; } }); addProperty(new IntegerProperty("barWidth") { @Override public Integer getValue() { return barWidth; } @Override public void setValue(Integer value) { barWidth = value; } }); addProperty(new IntegerProperty("barHeight") { @Override public Integer getValue() { return barHeight; } @Override public void setValue(Integer value) { barHeight = value; } }); addProperty(new BooleanProperty("interactive") { @Override public Boolean getValue() { return interactive; } @Override public void setValue(Boolean value) { interactive = value==null?false:value; } }); addProperty(new BooleanProperty("loading") { @Override public Boolean getValue() { return loading; } @Override public void setValue(Boolean value) { loading = value==null?true:value; } }); } @Override protected WidgetComponent createComponent() { return new ScrubberWidgetComponent(this); } @Override protected WidgetPropertiesEditor createWidgetEditor() { return new ScrubberWidgetEditor(this); } }