package org.korsakow.ide.ui.interfacebuilder.widget; import javax.swing.JLabel; import org.korsakow.ide.lang.LanguageBundle; import org.korsakow.ide.resources.WidgetType; import org.korsakow.ide.resources.property.IntegerProperty; import org.korsakow.ide.resources.widget.ScalingPolicy; 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.SnuAutoLinkWidgetEditor; public class SnuAutoLink extends AbstractLink { private static class SnuAutoLinkWidgetComponent extends AbstractLinkWidgetComponent { private JLabel indexLabel; public SnuAutoLinkWidgetComponent(WidgetModel owner) { super(owner); } @Override protected void initUI() { super.initUI(); label.setText(LanguageBundle.getString("widget.snuautolink.label")); indexLabel = new JLabel(); add(indexLabel); } public void setIndex(int index) { indexLabel.setText("#"+(index+1)); } } @Override protected WidgetComponent createComponent() { return new SnuAutoLinkWidgetComponent(this); } @Override protected WidgetPropertiesEditor createWidgetEditor() { return new SnuAutoLinkWidgetEditor(this); } private int index; public SnuAutoLink() { super(WidgetType.SnuAutoLink); scalingPolicy = ScalingPolicy.MaintainAspectRatio; addProperty(new IntegerProperty("index") { @Override public Integer getValue() { return getIndex(); } @Override public void setValue(Integer value) { setIndex(Integer.parseInt(value.toString())); } }); } public int getIndex() { return index; } public void setIndex(int index) { int oldIndex = this.index; this.index = index; ((SnuAutoLinkWidgetComponent)getComponent()).setIndex(index); firePropertyChange("index", oldIndex, index); } }