@Override public IHierarchicalNodeLayout getHierarchicalNodeLayout(IHierarchicalNodeModel model) { IHierarchicalNodeLayout layout = null; if (hasLayoutForModel(model.getLabel())) layout = getNodeLayoutByModelName(model); else layout = getNodeLayoutByModelType(model); attachChildren(layout, model); return layout; }
@Override public IHierarchicalNodeLayout getNodeLayoutByModelName(IHierarchicalNodeModel model) { if (modelNameToLayoutName != null) { String name = modelNameToLayoutName.get(model.getLabel()); if (name != null) { IHierarchicalNodeLayout layout = getNodeLayoutByName(name); layout.setModel(model); String initInfo = info(model, layout); Logger.getLogger(HierarchicalLayoutFactory.class).info(initInfo); return layout; } else throw new RuntimeException( "layout factory does not have a defined layout for model " + model.getLabel()); } else throw new RuntimeException("layout factory does not have a model<->layout mapping by name"); }
protected String info(IHierarchicalNodeModel model, IHierarchicalNodeLayout layout) { return model.getClass().getSimpleName() + model.getLabel() + layout.getClass().getSimpleName(); }