/*
* Copyright (c) 2010 Stiftung Deutsches Elektronen-Synchrotron, Member of the Helmholtz
* Association, (DESY), HAMBURG, GERMANY. THIS SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN
* "../AS IS" BASIS. WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
* TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO
* EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH
* THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. SHOULD THE SOFTWARE PROVE DEFECTIVE IN
* ANY RESPECT, THE USER ASSUMES THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS
* DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SOFTWARE IS
* AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. DESY HAS NO OBLIGATION TO PROVIDE MAINTENANCE,
* SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. THE FULL LICENSE SPECIFYING FOR THE SOFTWARE
* THE REDISTRIBUTION, MODIFICATION, USAGE AND OTHER RIGHTS AND OBLIGATIONS IS INCLUDED WITH THE
* DISTRIBUTION OF THIS PROJECT IN THE FILE LICENSE.HTML. IF THE LICENSE IS NOT INCLUDED YOU MAY
* FIND A COPY AT HTTP://WWW.DESY.DE/LEGAL/LICENSE.HTM
*/
package org.csstudio.sds.components.model.eventing;
import org.csstudio.sds.components.model.StripChartModel;
import org.csstudio.sds.eventhandling.AbstractEnsureInvariantsCommand;
import org.csstudio.sds.eventhandling.AbstractWidgetPropertyPostProcessor;
import org.eclipse.gef.commands.Command;
/**
* TODO (hrickens) :
*
* @author hrickens
* @author $Author: hrickens $
* @version $Revision: 1.1 $
* @since 10.05.2010
*/
public class StripChartPlotPostProcessor extends
AbstractWidgetPropertyPostProcessor<StripChartModel> {
/**
* {@inheritDoc}
*/
@Override
protected Command doCreateCommand(final StripChartModel widget) {
assert widget != null : "widget != null";
String number = getWorkingPropertyId().replaceFirst("enable_plot", "");
int tempId;
try {
tempId = Integer.parseInt(number) - 1;
} catch (NumberFormatException e) {
tempId = -1;
}
final int id = tempId;
return new AbstractEnsureInvariantsCommand<StripChartModel>(widget, getWorkingPropertyId()) {
@Override
protected boolean shouldHideProperties(final StripChartModel scWidget,
final String propertyId) {
try {
if (id < 0) {
return false;
}
boolean b = !scWidget.getBooleanProperty(propertyId);
return b;
} catch (Exception e) {
System.out.println("comnand ex");
}
return false;
}
@Override
protected String[] getPropertyIds() {
try {
String[] propertyIds = new String[] { StripChartModel.valuePropertyId(id),
StripChartModel.plotColorPropertyId(id) };
return propertyIds;
} catch (Exception e) {
// No Properties was hidden.
}
return new String[0];
}
};
}
}