package com.smartgwt.sample.showcase.client.effects.looknfeel;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.Slider;
import com.smartgwt.client.widgets.events.DrawEvent;
import com.smartgwt.client.widgets.events.DrawHandler;
import com.smartgwt.client.widgets.events.ValueChangedEvent;
import com.smartgwt.client.widgets.events.ValueChangedHandler;
import com.smartgwt.sample.showcase.client.PanelFactory;
import com.smartgwt.sample.showcase.client.ShowcasePanel;
public class ShadowsSample extends ShowcasePanel {
private static final String DESCRIPTION = "Drag the slider to change the shadow depth for the text box.";
private static final String EXAMPLE_TEXT = "When in the Course of human events, it becomes necessary for one people to " +
"dissolve the political bands which have connected them with another, and to assume among the powers of the earth, " +
"the separate and equal station to which the Laws of Nature and of Nature's God entitle them, a decent respect to " +
"the opinions of mankind requires that they should declare the causes which impel them to the separation.";
public static class Factory implements PanelFactory {
private String id;
public Canvas create() {
ShadowsSample panel = new ShadowsSample();
id = panel.getID();
return panel;
}
public String getID() {
return id;
}
public String getDescription() {
return DESCRIPTION;
}
}
public Canvas getViewPanel() {
Canvas canvas = new Canvas();
final Label label = new Label(EXAMPLE_TEXT);
label.setWidth(250);
label.setPadding(10);
label.setLeft(160);
label.setTop(20);
label.setBackgroundColor("white");
label.setBorder("1px solid #c0c0c0");
label.setCanDragReposition(true);
label.setShowShadow(true);
label.setShadowSoftness(10);
label.setShadowOffset(5);
label.setKeepInParentRect(true);
final Slider softness = new Slider("Softness");
softness.setMinValue(1);
softness.setMaxValue(10);
softness.setNumValues(11);
softness.setShowRange(false);
softness.setLabelWidth(20);
softness.setValue(10);
softness.addDrawHandler(new DrawHandler() {
public void onDraw(DrawEvent event) {
softness.addValueChangedHandler(new ValueChangedHandler() {
public void onValueChanged(ValueChangedEvent event) {
label.setShadowSoftness(event.getValue());
label.updateShadow();
}
});
}
});
final Slider offset = new Slider("Offset");
offset.setMinValue(0);
offset.setMaxValue(20);
offset.setNumValues(21);
offset.setShowRange(false);
offset.setLabelWidth(20);
offset.setLeft(60);
offset.setValue(5);
offset.addDrawHandler(new DrawHandler() {
public void onDraw(DrawEvent event) {
offset.addValueChangedHandler(new ValueChangedHandler() {
public void onValueChanged(ValueChangedEvent event) {
label.setShadowOffset(event.getValue());
label.updateShadow();
}
});
}
});
canvas.addChild(softness);
canvas.addChild(offset);
canvas.addChild(label);
return canvas;
}
public String getIntro() {
return DESCRIPTION;
}
}