/*******************************************************************************
* Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) 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:
* Soyatec - initial API and implementation
*******************************************************************************/
package org.eclipse.papyrus.xwt.core;
/**
* The class defines the in-line XAML style
*
* @author yyang
*/
public class Style {
protected Class<?> targetType;
protected SetterBase[] setters;
protected TriggerBase[] triggers;
public TriggerBase[] getTriggers() {
if(triggers == null) {
return TriggerBase.EMPTY_ARRAY;
}
return triggers;
}
public void setTriggers(TriggerBase[] triggers) {
this.triggers = triggers;
}
public Class<?> getTargetType() {
return targetType;
}
public void setTargetType(Class<?> targetType) {
this.targetType = targetType;
}
public SetterBase[] getSetters() {
if(setters == null) {
return SetterBase.EMPTY_SETTERS;
}
return setters;
}
public void setSetters(SetterBase[] setters) {
this.setters = setters;
}
public void apply(Object target) {
for(SetterBase setter : getSetters()) {
setter.applyTo(target, true);
}
for(TriggerBase triggerBase : getTriggers()) {
triggerBase.prepare(target);
}
for(TriggerBase triggerBase : getTriggers()) {
triggerBase.on(target);
}
}
}