Mercurial > hg > STI-GWT
view src/econnect/wp3_3/client/widgets/timeplot/Timeplot.java @ 89:3700846b8590 trimmed_data tip
bug: removed leading / in url
author | Sebastian Kruse <skruse@mpiwg-berlin.mpg.de> |
---|---|
date | Fri, 15 Mar 2013 12:53:55 +0100 |
parents | cf06b77a8bbd |
children |
line wrap: on
line source
package econnect.wp3_3.client.widgets.timeplot; import com.google.gwt.user.client.ui.AbsolutePanel; import com.google.gwt.user.client.ui.Grid; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.DivElement; import com.google.gwt.dom.client.Document; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import econnect.wp3_3.client.slider.Slider; import econnect.wp3_3.client.core.ApplicationConstants; import econnect.wp3_3.client.core.StiConstants; import econnect.wp3_3.client.core.StiCore; import econnect.wp3_3.client.widgets.timeplot.StiTimeplot; /** * Implementation of the Java component of the timeplot widget */ public class Timeplot { /** * The Javascript timeplot object */ private StiTimeplot jsTimeplot; /** * The slider component of the timeplot controls */ private Slider zoomSlider; /** * The animation control image container */ private Image animation; /** * If animation is possible (selected time range) */ private boolean enableAnimation = false; /** * Constructor for the timeplot widget java component * * @param core object to allow interaction with all javascript components * @param window id of the window to embed the timeplot widget * @param container id of the container, the window will be added */ public Timeplot( StiCore core, String window, String container ){ this.jsTimeplot = StiTimeplot.createStiTimeplot(core, window, container); } /** * initializes the controls needed for timeplot interaction * * @return a grid of control elements */ public Grid initPlotControls(){ final ApplicationConstants constants = (ApplicationConstants) GWT.create(ApplicationConstants.class); final StiConstants textConstants = (StiConstants) GWT.create(StiConstants.class); this.animation = new Image(); this.animation.setTitle(textConstants.animation0()); this.animation.setUrl(constants.playDisabled()); this.animation.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { if( enableAnimation ){ if( jsTimeplot.paused() ){ jsTimeplot.play(); } else { jsTimeplot.pause(); } } } }); final Grid controlGrid = new Grid(2,1); controlGrid.setWidget(0, 0, this.animation); DivElement zoomDiv = Document.get().createDivElement(); zoomSlider = new Slider(zoomDiv,"vertical"); zoomSlider.getSlider().setMaximum(100); zoomSlider.getSlider().setValue(0); zoomSlider.getSlider().addChangeListener(jsTimeplot,Document.get(),false); Image zoomIn = new Image(constants.zoomInImage()); zoomIn.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { jsTimeplot.zoom(1); } }); Image zoomOut = new Image(constants.zoomOutImage()); zoomOut.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { jsTimeplot.zoom(-1); } }); SimplePanel zoom = new SimplePanel(); zoom.getElement().appendChild(zoomDiv); AbsolutePanel zoomPanel = new AbsolutePanel(); zoomPanel.addStyleName("sliderStyle"); zoomPanel.addStyleName("cellStyle"); zoomPanel.addStyleName("center"); zoomPanel.add(zoomIn,2,0); zoomPanel.add(zoom,0,10); zoomPanel.add(zoomOut,2,84); zoomIn.addStyleName("zHigh"); zoomOut.addStyleName("zHigh"); zoomPanel.setTitle(textConstants.plotZoom()); controlGrid.setWidget(1, 0, zoomPanel); return controlGrid; } /** * changes images of animation controls */ public void animationImage( boolean enable ){ final ApplicationConstants constants = (ApplicationConstants) GWT.create(ApplicationConstants.class); final StiConstants textConstants = (StiConstants) GWT.create(StiConstants.class); this.enableAnimation = enable; if( enable ){ if( jsTimeplot.paused() ){ animation.setUrl(constants.playEnabled()); animation.setTitle(textConstants.animation1()); } else { animation.setUrl(constants.pauseEnabled()); animation.setTitle(textConstants.animation2()); } } else { animation.setUrl(constants.playDisabled()); animation.setTitle(textConstants.animation0()); } } /** * sets zoom levels of corresponding zoom slider * * @param levels number of zoom levels */ public void setZoomLevels( int levels ){ zoomSlider.getSlider().setMaximum(levels); } /** * sets value of corresponding zoom slider * * @param value value to set */ public void setValue( int value ){ zoomSlider.getSlider().setValue(value); } /** * Getter for the value of corresponding zoom slider * * @return actual zoom slider value */ public int getValue(){ return zoomSlider.getSlider().getValue(); } /** * Getter for the corresponding Javascript component of the Timeplot * * @return the Javascript component of the Timeplot */ public StiTimeplot getJsTimeplot(){ return this.jsTimeplot; } }