/*******************************************************************************
* Copyright (c) 2005, 2007 IBM Corporation and others.
* 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
*
* Contributors:
* IBM Corporation - initial API and implementation
* Peter Centgraf - bug 175763
* Samy Abou-Shama - initial adaptation for Eclipse RAP
*******************************************************************************/
package org.eclipse.jface.internal.databinding.internal.swt;
//import org.eclipse.core.databinding.observable.Diffs;
//import org.eclipse.core.runtime.Assert;
//import org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTObservableValue;
//import org.eclipse.swt.events.SelectionAdapter;
//import org.eclipse.swt.events.SelectionEvent;
//import org.eclipse.swt.events.SelectionListener;
//import org.eclipse.swt.widgets.Scale;
// TODO [sa] Scale not supported yet (not implemented as RAP swt)
/**
* @since 1.0
*
*/
public class ScaleObservableValue
//extends AbstractSWTObservableValue
{
// private final Scale scale;
//
// private final String attribute;
//
// private boolean updating = false;
//
// private int currentSelection;
//
// private SelectionListener listener;
//
// /**
// * @param scale
// * @param attribute
// */
// public ScaleObservableValue(Scale scale, String attribute) {
// super(scale);
// this.scale = scale;
// this.attribute = attribute;
// if (attribute.equals(SWTProperties.SELECTION)) {
// currentSelection = scale.getSelection();
// scale.addSelectionListener(listener = new SelectionAdapter() {
// public void widgetSelected(SelectionEvent e) {
// if (!updating) {
// int newSelection = ScaleObservableValue.this.scale
// .getSelection();
// fireValueChange(Diffs.createValueDiff(new Integer(
// currentSelection), new Integer(newSelection)));
// currentSelection = newSelection;
// }
// }
// });
// } else if (!attribute.equals(SWTProperties.MIN)
// && !attribute.equals(SWTProperties.MAX)) {
// throw new IllegalArgumentException(
// "Attribute name not valid: " + attribute); //$NON-NLS-1$
// }
// }
//
// public void doSetValue(final Object value) {
// int oldValue;
// int newValue;
// try {
// updating = true;
// newValue = ((Integer) value).intValue();
// if (attribute.equals(SWTProperties.SELECTION)) {
// oldValue = scale.getSelection();
// scale.setSelection(newValue);
// currentSelection = newValue;
// } else if (attribute.equals(SWTProperties.MIN)) {
// oldValue = scale.getMinimum();
// scale.setMinimum(newValue);
// } else if (attribute.equals(SWTProperties.MAX)) {
// oldValue = scale.getMaximum();
// scale.setMaximum(newValue);
// } else {
// Assert.isTrue(false, "invalid attribute name:" + attribute); //$NON-NLS-1$
// return;
// }
// fireValueChange(Diffs.createValueDiff(new Integer(oldValue),
// new Integer(newValue)));
// } finally {
// updating = false;
// }
// }
//
// public Object doGetValue() {
// int value = 0;
// if (attribute.equals(SWTProperties.SELECTION)) {
// value = scale.getSelection();
// } else if (attribute.equals(SWTProperties.MIN)) {
// value = scale.getMinimum();
// } else if (attribute.equals(SWTProperties.MAX)) {
// value = scale.getMaximum();
// }
// return new Integer(value);
// }
//
// public Object getValueType() {
// return Integer.TYPE;
// }
//
// /**
// * @return attribute being observed
// */
// public String getAttribute() {
// return attribute;
// }
//
// /* (non-Javadoc)
// * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#dispose()
// */
// public synchronized void dispose() {
// super.dispose();
//
// if (listener != null && !scale.isDisposed()) {
// scale.removeSelectionListener(listener);
// }
// listener = null;
// }
}