blob: 5bf5e7d9f79e807fdb5ab32e98b9e33d6329be13 [file] [log] [blame]
/**
********************************************************************************
* Copyright (c) 2022 Robert Bosch GmbH.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Robert Bosch GmbH - initial API and implementation
********************************************************************************
*/
package org.eclipse.app4mc.emf.visualizations;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
/**
* Configuration of the visualization
*
*/
public class EObjectRefsConfig {
private final PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
private boolean horizontalLayout = false;
private boolean showDerivedReferences = false;
private boolean showReferenceLabels = false;
private int scale = 100; // percent
public boolean isHorizontalLayout() {
return horizontalLayout;
}
public void setHorizontalLayout(boolean horizontal) {
horizontalLayout = horizontal;
firePropertyChange("parameter1", null, horizontalLayout);
}
public boolean isShowDerivedReferences() {
return showDerivedReferences;
}
public void setShowDerivedReferences(boolean showDerived) {
showDerivedReferences = showDerived;
firePropertyChange("parameter2", null, showDerivedReferences);
}
public boolean isShowReferenceLabels() {
return showReferenceLabels;
}
public void setShowReferenceLabels(boolean showLabels) {
showReferenceLabels = showLabels;
firePropertyChange("parameter3", null, showReferenceLabels);
}
public int getScale() {
return scale;
}
/**
* Sets a new scale value (if the new value is different and within the bounds [10, 200])
*
* @param newScale
* @return true if value was changed
*/
public boolean setScale(int newScale) {
if (scale == newScale || newScale < 10 || newScale > 200) {
return false;
}
int oldScale = scale;
scale = newScale;
firePropertyChange("scale", oldScale, newScale);
return true;
}
public boolean decrementScale() {
return setScale(Math.max(10, scale - 10)); // minimum 10 %
}
public boolean incrementScale() {
return setScale(Math.min(200, scale + 10)); // maximum 200 %
}
// property change handling
public void addChangeListener(PropertyChangeListener listener) {
changeSupport.addPropertyChangeListener(listener);
}
public void removeChangeListener(PropertyChangeListener listener) {
changeSupport.removePropertyChangeListener(listener);
}
protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
changeSupport.firePropertyChange(propertyName, oldValue, newValue);
}
}