BrightSide Workbench Full Report + Source Code
Percentbox.java
Go to the documentation of this file.
1 /*
2  * TurrĂ³ i Cutiller Foundation. License notice.
3  * Copyright (C) 2011 Lluis TurrĂ³ Cutiller <http://www.turro.org/>
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU Affero General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU Affero General Public License for more details.
14  *
15  * You should have received a copy of the GNU Affero General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  */
18 package org.turro.zkoss.input;
19 
20 import org.zkoss.zk.ui.WrongValueException;
21 import org.zkoss.zul.Doublespinner;
22 
27 public class Percentbox extends Doublespinner {
28 
29  private double maxPercent = 1.0d;
30 
31  public Percentbox() {
32  setCols(5);
33  setStep(1.0);
34  setFormat("##0.0");
35  }
36 
37  public double getMaxPercent() {
38  return maxPercent;
39  }
40 
41  public void setMaxPercent(double maxPercent) {
42  this.maxPercent = maxPercent;
43  }
44 
45  @Override
46  public Double getValue() throws WrongValueException {
47  Object val = getTargetValue();
48  if(val instanceof Number) {
49  return ((Number) val).doubleValue() / 100.0d;
50  }
51  return 1.0d;
52  }
53 
54  @Override
55  public void setValue(Double value) throws WrongValueException {
56  value = Math.max(Math.min(value, maxPercent), 0.0d);
57  super.setValue(Double.valueOf(value * 100.0d));
58  }
59 
60 }
void setMaxPercent(double maxPercent)
Definition: Percentbox.java:41