// Copyright 2011 Palantir Technologies
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.palantir.ptoss.cinch;
import javax.swing.JProgressBar;
import com.palantir.ptoss.cinch.core.Bindings;
import com.palantir.ptoss.cinch.core.DefaultBindableModel;
import com.palantir.ptoss.cinch.swing.Bound;
import junit.framework.TestCase;
public class BoundJProgressBarTest extends TestCase {
public static class TestModel extends DefaultBindableModel {
private int intVal = 0;
private double doubleVal = 0d;
private float floatVal = 0f;
public int getIntVal() {
return intVal;
}
public void setIntVal(int intVal) {
this.intVal = intVal;
update();
}
public double getDoubleVal() {
return doubleVal;
}
public void setDoubleVal(double doubleVal) {
this.doubleVal = doubleVal;
update();
}
public float getFloatVal() {
return floatVal;
}
public void setFloatVal(float floatVal) {
this.floatVal = floatVal;
update();
}
}
private final TestModel model = new TestModel();
@Bound(to = "intVal")
private final JProgressBar intBar = new JProgressBar();
@Bound(to = "floatVal")
private final JProgressBar floatBar = new JProgressBar();
@Bound(to = "doubleVal")
private final JProgressBar doubleBar = new JProgressBar();
private final Bindings bindings = new Bindings();
@Override
protected void setUp() {
bindings.bind(this);
}
public void testInt() {
assertEquals(0, intBar.getValue());
assertFalse(intBar.isIndeterminate());
model.setIntVal(50);
assertEquals(50, intBar.getValue());
assertFalse(intBar.isIndeterminate());
model.setIntVal(100);
assertEquals(100, intBar.getValue());
assertFalse(intBar.isIndeterminate());
model.setIntVal(-1);
assertTrue(intBar.isIndeterminate());
model.setIntVal(100);
assertEquals(100, intBar.getValue());
assertFalse(intBar.isIndeterminate());
model.setIntVal(200);
assertEquals(100, intBar.getValue());
assertFalse(intBar.isIndeterminate());
}
public void testDouble() {
assertEquals(0, doubleBar.getValue());
assertFalse(doubleBar.isIndeterminate());
model.setDoubleVal(0.50);
assertEquals(50, doubleBar.getValue());
assertFalse(doubleBar.isIndeterminate());
model.setDoubleVal(1.00);
assertEquals(100, doubleBar.getValue());
assertFalse(doubleBar.isIndeterminate());
model.setDoubleVal(-1);
assertTrue(doubleBar.isIndeterminate());
model.setDoubleVal(1.00);
assertEquals(100, doubleBar.getValue());
assertFalse(doubleBar.isIndeterminate());
model.setDoubleVal(2.00);
assertEquals(100, doubleBar.getValue());
assertFalse(doubleBar.isIndeterminate());
}
public void testFloat() {
assertEquals(0, floatBar.getValue());
assertFalse(floatBar.isIndeterminate());
model.setFloatVal(0.50f);
assertEquals(50, floatBar.getValue());
assertFalse(floatBar.isIndeterminate());
model.setFloatVal(1.00f);
assertEquals(100, floatBar.getValue());
assertFalse(floatBar.isIndeterminate());
model.setFloatVal(-1f);
assertTrue(floatBar.isIndeterminate());
model.setFloatVal(1.00f);
assertEquals(100, floatBar.getValue());
assertFalse(floatBar.isIndeterminate());
model.setFloatVal(2.00f);
assertEquals(100, floatBar.getValue());
assertFalse(floatBar.isIndeterminate());
}
}