/**
*
*/
package com.waxayaz.TomcatMI.ui.components;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabFolder2Adapter;
import org.eclipse.swt.custom.CTabFolderEvent;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import com.waxayaz.TomcatMI.core.domains.TomcatInstance;
import com.waxayaz.TomcatMI.ui.MainWindow;
/**
* @author Waxayaz
*
*/
public class InstanceTabPane {
/**
*
*/
private static final long serialVersionUID = 4704450729306739988L;
private CTabFolder tabPane;
private Display display = MainWindow.display;
private Map<String, CTabItem> openedInstances =new HashMap<String, CTabItem>();
public InstanceTabPane(Composite parent) {
tabPane = new CTabFolder(parent, SWT.BORDER);
tabPane.setBorderVisible(true);
tabPane.setLayoutData(new GridData(GridData.FILL_BOTH));
tabPane.setSimple(false);
// Close Tab Listener
tabPane.addCTabFolder2Listener(new CTabFolder2Adapter() {
public void close(CTabFolderEvent event) {
if (openedInstances.containsValue(event.item)) {
for(String s : openedInstances.keySet()) {
if(openedInstances.get(s).equals(event.item)) {
openedInstances.remove(s);
return;
}
}
}
//System.gc();
}
});
}
public void addInstanceTab(TomcatInstance instance) {
if(openedInstances.get(instance.getName()) == null) {
InstanceTab tab = new InstanceTab(tabPane, display, instance);
openedInstances.put(instance.getName(), tab.getTabItem());
tabPane.setSelection(tabPane.getItemCount()-1);
} else {
tabPane.setSelection(openedInstances.get(instance.getName()));
}
}
}