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.AbstractProperty; 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.MainMediaWidgetEditor; public class MainMedia extends WidgetModel { private static class MainMediaWidgetComponent extends WidgetComponent { public MainMediaWidgetComponent(WidgetModel owner) { super(owner); } @Override protected void initUI() { super.initUI(); setSize(720, 405); add(new JLabel(LanguageBundle.getString("widget.mainmedia.label"))); } } @Override protected WidgetComponent createComponent() { return new MainMediaWidgetComponent(this); } @Override protected WidgetPropertiesEditor createWidgetEditor() { return new MainMediaWidgetEditor(this); } protected ScalingPolicy scalingPolicy = ScalingPolicy.ScaleDownMaintainAspectRatio; public MainMedia() { super(WidgetType.MainMedia); addProperty(new AbstractProperty("scalingPolicy") { @Override public Object getValue() { return getScalingPolicy().getId(); } @Override public void setValue(Object value) { if (value instanceof ScalingPolicy == false) value = ScalingPolicy.forId(value.toString()); setScalingPolicy((ScalingPolicy)value); } }); } public ScalingPolicy getScalingPolicy() { return scalingPolicy; } public void setScalingPolicy(ScalingPolicy scalingPolicy) { ScalingPolicy oldValue = scalingPolicy; this.scalingPolicy = scalingPolicy; firePropertyChange("scalingPolicy", oldValue, scalingPolicy); } }