/* * $Id$ * This file is a part of the Arakhne Foundation Classes, http://www.arakhne.org/afc * * Copyright (c) 2000-2012 Stephane GALLAND. * Copyright (c) 2005-10, Multiagent Team, Laboratoire Systemes et Transports, * Universite de Technologie de Belfort-Montbeliard. * Copyright (c) 2013-2016 The original authors, and other authors. * * 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 org.arakhne.afc.ui.swing.progress; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.arakhne.afc.progress.Progression; import org.arakhne.afc.progress.ProgressionEvent; import org.arakhne.afc.progress.ProgressionListener; /** * This model permit to manage a task progression and could be * given to a progress bar. * <p> * <pre><code> * Progression m = ...; * TaskProgressionProgressBarWrapper pbm = new TaskProgressionProgressBarWrapper(m); * JProgressBar pb = new JProgressBar(pbm); * </code></pre> * * @author $Author: sgalland$ * @version $FullVersion$ * @mavengroupid $GroupId$ * @mavenartifactid $ArtifactId$ * @deprecated see JavaFX API */ @Deprecated final class ProgressionProgressBarWrapper implements ProgressionWrapper { private final Progression model; /** * @param model is the model to wrap. */ public ProgressionProgressBarWrapper(Progression model) { this.model = model; } @Override public Progression getWrappedModel() { return this.model; } /** * {@inheritDoc} */ @Override public void addChangeListener(ChangeListener listener) { this.model.addProgressionListener(new Listener(listener)); } /** * {@inheritDoc} */ @Override public void removeChangeListener(ChangeListener listener) { this.model.removeProgressionListener(new Listener(listener)); } /** * {@inheritDoc} */ @Override public int getExtent() { return 1; } /** * {@inheritDoc} */ @Override public void setExtent(int newExtent) { // } /** * {@inheritDoc} */ @Override public int getMaximum() { return this.model.getMaximum(); } /** * {@inheritDoc} */ @Override public int getMinimum() { return this.model.getMinimum(); } /** * {@inheritDoc} */ @Override public int getValue() { return this.model.getValue(); } /** * {@inheritDoc} */ @Override public boolean getValueIsAdjusting() { return this.model.isAdjusting(); } /** * {@inheritDoc} */ @Override public void setMaximum(int newMaximum) { this.model.setMaximum(newMaximum); } /** * {@inheritDoc} */ @Override public void setMinimum(int newMinimum) { this.model.setMinimum(newMinimum); } /** * {@inheritDoc} */ @Override public void setRangeProperties( int value, int extent, int min, int max, boolean adjusting) { this.model.setProperties(value, min, max, adjusting); } /** * {@inheritDoc} */ @Override public void setValue(int newValue) { int v = getValue(); int m = getMaximum(); if (v<m && newValue==m) { this.model.end(); } else { this.model.setValue(newValue); } } /** * {@inheritDoc} */ @Override public void setValueIsAdjusting(boolean b) { this.model.setAdjusting(b); } /** * @author $Author: sgalland$ * @version $FullVersion$ * @mavengroupid $GroupId$ * @mavenartifactid $ArtifactId$ */ private static class Listener implements ProgressionListener { private final ChangeListener listener; /** * @param l */ public Listener(ChangeListener l) { assert(l!=null); this.listener = l; } /** * {@inheritDoc} */ @Override public void onProgressionStateChanged(ProgressionEvent event) { ChangeEvent e = new ChangeEvent(event.getSource()); this.listener.stateChanged(e); } /** * {@inheritDoc} */ @Override public void onProgressionValueChanged(ProgressionEvent event) { ChangeEvent e = new ChangeEvent(event.getSource()); this.listener.stateChanged(e); } /** * {@inheritDoc} */ @Override public boolean equals(Object obj) { if (obj instanceof Listener) return this.listener.equals(((Listener)obj).listener); return this.listener.equals(obj); } /** * {@inheritDoc} */ @Override public int hashCode() { return this.listener.hashCode(); } } }