Studio list

Recover lists

From a ICatalog object, you may recover the lists of a catalog.

public void catalog_useLists( ICatalog catalog ) {
	// retrieving the group of lists from a catalog
	Collection<IList> lists = catalog.getLists();
	for ( IList list : lists ) {
		if ( list instanceof IStringList ) {
			IStringList stringList = (IStringList)list;
			System.out.println( stringList.getLabel() + " [" + stringList.getName() + "]" );
			for ( Iterator iterValue = stringList.getValues().iterator() ; iterValue.hasNext() ; ) {
				String stringListElement = (String)iterValue.next();
				System.out.println( stringListElement );
			}
		} else if ( list instanceof IXmlList ) {
			// ...
		}
	}
}

Modifier les valeurs d’une liste pour un processus

Il s’agit ici de montrer comment modifier les valeurs des listes internes du studio. Les modifications ne sont pas ici effectuées pour un document précis, mais pour le groupe de processus, et donc pour tous les documents.

IWorkflowModule iWorkflowModule = getWorkflowModule();
try {
	IContext context = getWorkflowModule().getContextByLogin("sysadmin");
	
	iWorkflowModule.beginTransaction();
	
	IOrganization iOrganization = getDirectoryModule().getOrganization(context, "defaultOrganization");
	IProject iProject = getProjectModule().getProject(context, "DefaultProject", iOrganization);
	ICatalog iCatalog = getWorkflowModule().getCatalog(context, "UpdateCatalogList", iProject);
	IList iList = iWorkflowModule.getList(context, iCatalog, "MyList");
	
	if (iList instanceof List) 	{
		List list = (List) iList;
		
		// We clean list content
		list.setValues(null, "fr", false);
		
		// We add 2 new data
		list.setValueLabel("myKey1", "fr", "myValueDisplayed1");
		list.setValueLabel("myKey2", "fr", "myValueDisplayed2");
		
		list.save(context);
	}
	
	iWorkflowModule.commitTransaction();
} catch (ModuleException me) {
	LOGGER.error(me);
} finally {
	if (iWorkflowModule.isTransactionActive()) 	{
		iWorkflowModule.rollbackTransaction();
	}
}

Source : https://wiki.myvdoc.net/xwiki/bin/view/Dev+Floor/HowToUpdateCatalogList