package org.clothocore.tool.pluginmanager.gui;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import org.clothocore.api.core.Collator;
import java.util.ArrayList;
import java.util.Hashtable;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JSeparator;
import org.clothocore.api.core.wrapper.ViewerWrapper;
import org.clothocore.api.data.ObjType;
public class {
public (int x, int y, String type) {
myType = ObjType.valueOf(type.toUpperCase());
popupMenu = new JPopupMenu();
ItemHandler handler = new ItemHandler();
JLabel launchlabel = new JLabel();
launchlabel.setText("Set Preferred Viewer:");
launchlabel.setFont(new Font("Arial", Font.ITALIC, 10));
popupMenu.add( launchlabel );
JSeparator jsep = new JSeparator();
popupMenu.add( jsep );
if(_connected) {
ArrayList<ViewerWrapper> wraps = Collator.getAvailableViewers(myType);
Object[] _viewers = Collator.getAvailableViewers(myType).toArray();
for ( int i = 0; i < _viewers.length; i++ )
{
JMenuItem amenu = new JMenuItem( _viewers[i].toString() );
menuOptions.add(amenu);
popupMenu.add( amenu );
amenu.addActionListener( handler );
viewerHash.put(_viewers[i].toString(), (ViewerWrapper) _viewers[i]);
}
}
popupMenu.show( null, x, y );
}
popupMenu.setVisible(false);
}
@Override
JMenuItem selectitem = (JMenuItem) e.getSource();
String selected = selectitem.getText();
if(viewerHash.containsKey(selected)) {
ViewerWrapper vw = viewerHash.get(selected);
Collator.putPreferredViewer(myType, vw);
System.out.println("I set preferred " + myType + " " + vw.getDisplayName());
}
popupMenu.setVisible(false);
return;
}
}
private ArrayList<JMenuItem> menuOptions = new ArrayList<JMenuItem>();
private Hashtable<String, ViewerWrapper> viewerHash = new Hashtable<String, ViewerWrapper>();
private ObjType myType;
private JPopupMenu popupMenu = null;
private boolean _connected = true;
}