public static void postProcess(ProcessLayouter layouter, ProcessModel model) { // special handling for certain model types if (layouter instanceof SugiyamaLayoutAlgorithm && model instanceof ClassModel) { SugiyamaLayoutAlgorithm _layouter = (SugiyamaLayoutAlgorithm) layouter; setDockingPoints(model, _layouter); } List<EdgeInterface> _edgesToRoute = layouter.getUnroutedEdges(); if (_edgesToRoute != null) { for (EdgeInterface edge : _edgesToRoute) { if (edge instanceof ProcessEdgeAdapter) { ProcessEdge _e = ((ProcessEdgeAdapter) edge).getEdge(); model.getUtils().getRoutingPointLayouter().optimizeRoutingPoints(_e, _e.getSource()); } } } }
/** * works recursively * * @param f */ private void importAndLayout(File f, List<Class<? extends ProcessModel>> modelTypes) { if (f.isDirectory()) { for (File child : f.listFiles()) { importAndLayout(child, modelTypes); } } else { try { List<ProcessModel> _models = ConverterHelper.importModels(f); for (ProcessModel pm : _models) { if (pm != null) { try { boolean _doLayout = false; if (modelTypes == null) { _doLayout = true; } else { for (Class<? extends ProcessModel> cl : modelTypes) { if (pm.getClass().isAssignableFrom(cl)) { _doLayout = true; } } } if (_doLayout) { System.out.println("Layouting " + f.getName()); f_layouter.layoutModel(ProcessUtils.getAdapter(pm)); } } catch (Exception e) { e.printStackTrace(); fail("Error while Layouting " + f.getAbsolutePath()); } } } } catch (Exception e) { System.out.println("Could not import " + f.getName()); } } }