package com.remainsoftware.ece2013.nebula.visualization;
/*******************************************************************************
* Copyright (c) 2010 Oak Ridge National Laboratory.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
******************************************************************************/
import org.eclipse.draw2d.LightweightSystem;
import org.eclipse.draw2d.SchemeBorder;
import org.eclipse.nebula.visualization.widgets.figures.MeterFigure;
import org.eclipse.nebula.visualization.xygraph.util.XYGraphMediaFactory;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Composite;
/**
* A live updated Gauge Example.
*
* @author Xihui Chen
*
*/
public class Meter extends Composite {
private MeterFigure meterFigure;
private int value;
public Meter(Composite parent, int style) {
super(parent, style);
main(this);
}
public void main(Composite parent) {
parent.setLayout(new FillLayout());
// use LightweightSystem to create the bridge between SWT and draw2D
Canvas canvas = new Canvas(parent, SWT.NONE);
final LightweightSystem lws = new LightweightSystem(canvas);
meterFigure = new MeterFigure();
// Init gauge
meterFigure.setBackgroundColor(XYGraphMediaFactory.getInstance()
.getColor(255, 255, 255));
meterFigure.setBorder(new SchemeBorder(SchemeBorder.SCHEMES.ETCHED));
meterFigure.setRange(0, 250);
meterFigure.setLoLevel(20);
meterFigure.setLoloLevel(30);
meterFigure.setHiLevel(60);
meterFigure.setHihiLevel(80);
meterFigure.setMajorTickMarkStepHint(50);
lws.setContents(meterFigure);
}
public void setValue(int value) {
this.value = value;
meterFigure.setValue(value);
}
public int getValue() {
return value;
}
}