/*
* Licensed Materials - Property of Rogue Wave Software, Inc.
* © Copyright Rogue Wave Software, Inc. 2014, 2017
* © Copyright IBM Corp. 2009, 2014
* © Copyright ILOG 1996, 2009
* All Rights Reserved.
*
* Note to U.S. Government Users Restricted Rights:
* The Software and Documentation were developed at private expense and
* are "Commercial Items" as that term is defined at 48 CFR 2.101,
* consisting of "Commercial Computer Software" and
* "Commercial Computer Software Documentation", as such terms are
* used in 48 CFR 12.212 or 48 CFR 227.7202-1 through 227.7202-4,
* as applicable.
*/
package demo;
import java.util.ArrayList;
import java.util.List;
import ilog.views.diagrammer.IlvDiagrammer;
import ilog.views.diagrammer.faces.dhtml.component.IlvFacesDiagrammerPropertyAccessor;
import ilog.views.sdm.IlvSDMModel;
/**
* Server side bean used to provide the list of properties and values for the
* selected item.
*/
public class SelectionProviderBean {
/**
* Computes and returns the list of properties for the node (select interactor
* use).
*
* @param diagrammer
* Diagrammer instance
* @param node
* node to retrieve properties for.
* @return the list of properties for the node.
*/
public List<List<Object>> getAdditionnalProperties(IlvDiagrammer diagrammer, Object node) {
if (diagrammer.getView().getManager().getSelectedObjectsCount() == 1) {
List<List<Object>> props = new ArrayList<List<Object>>();
IlvSDMModel model = diagrammer.getEngine().getModel();
String names[] = model.getObjectPropertyNames(node);
for (int i = 0; i < names.length; i++) {
List<Object> l = new ArrayList<Object>();
l.add(names[i]);
l.add(model.getObjectProperty(node, names[i]));
props.add(l);
}
return props;
}
// no selected object or more that one
return null;
}
private IlvFacesDiagrammerPropertyAccessor accessor = new IlvFacesDiagrammerPropertyAccessor();
/**
* Returns a {@link IlvFacesDiagrammerPropertyAccessor} to access the
* properties objects.
*
* @return the default accessor to retrieve properties.
*/
public IlvFacesDiagrammerPropertyAccessor getPropertyAccessor() {
return accessor;
}
}