com.qspin.qtaste.tools.converter.factory.EventTreeFactory Maven / Gradle / Ivy
package com.qspin.qtaste.tools.converter.factory;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.MutableTreeNode;
import com.qspin.qtaste.tools.converter.model.event.Event;
public final class EventTreeFactory extends TreeFactory {
public synchronized static EventTreeFactory getInstance()
{
if ( INSTANCE == null ) {
INSTANCE = new EventTreeFactory();
}
return INSTANCE;
}
@Override
public MutableTreeNode buildRootTree(List pEvents) {
MutableTreeNode root = new DefaultMutableTreeNode("Events");
Map>> sortedEvents = sortData(pEvents);
for( String eventType : sortedEvents.keySet() )
{
MutableTreeNode eventNode = new DefaultMutableTreeNode(eventType);
for ( String componentName : sortedEvents.get(eventType).keySet() )
{
MutableTreeNode componentNode = new DefaultMutableTreeNode(getComponentDisplayName(componentName));
for (Event evt : sortedEvents.get(eventType).get(componentName) )
{
MutableTreeNode evtNode = EventNodeFactory.getInstance().createNode(evt, false, true);
componentNode.insert(evtNode, componentNode.getChildCount());
}
eventNode.insert(componentNode, eventNode.getChildCount());
}
root.insert(eventNode, root.getChildCount());
}
return root;
}
private EventTreeFactory()
{
super();
}
private Map>> sortData(List pEvents)
{
Map>> sortedEvents = new HashMap>>();
for ( Event evt : pEvents )
{
if ( !sortedEvents.containsKey(evt.getType()) )
{
sortedEvents.put(evt.getType(), new HashMap>());
}
Map> eventMap = sortedEvents.get(evt.getType());
if ( !eventMap.containsKey(evt.getComponentName() )) {
eventMap.put(evt.getComponentName(), new ArrayList());
}
eventMap.get(evt.getComponentName()).add(evt);
}
return sortedEvents;
}
private static EventTreeFactory INSTANCE;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy