001/* 002 * Copyright 2023 Anyware Services 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.ametys.plugins.workflow.tool; 017 018import java.io.File; 019import java.util.Map; 020 021import org.apache.avalon.framework.configuration.Configuration; 022import org.apache.avalon.framework.configuration.ConfigurationException; 023 024import org.ametys.core.ui.StaticClientSideElement; 025 026import net.sourceforge.plantuml.dot.ExeState; 027import net.sourceforge.plantuml.dot.GraphvizUtils; 028 029/** 030 * Client side element for the workflow tool. 031 */ 032public class WorkflowToolClientSideElement extends StaticClientSideElement 033{ 034 @Override 035 protected Map<String, Object> configureInitialParameters(Configuration configuration) throws ConfigurationException 036 { 037 Map<String, Object> initialParameters = super.configureInitialParameters(configuration); 038 039 // Add an initial parameter to define if graphviz is supported 040 File dotExe = GraphvizUtils.getDotExe(); 041 ExeState exeState = ExeState.checkFile(dotExe); 042 initialParameters.put("isGraphvizSupported", exeState == ExeState.OK); 043 044 return initialParameters; 045 } 046}