package ch.elexis.global_inbox;
import java.io.File;
import org.eclipse.ui.IStartup;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
import ch.elexis.core.data.activator.CoreHub;
/**
* The activator class controls the plug-in life cycle
*/
public class Activator extends AbstractUIPlugin implements IStartup {
// The plug-in ID
public static final String PLUGIN_ID = "ch.elexis.global_inbox"; //$NON-NLS-1$
// The shared instance
private static Activator plugin;
private InboxContentProvider contentProvider = new InboxContentProvider();
/**
* The constructor
*/
public Activator(){}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext )
*/
public void start(BundleContext context) throws Exception{
super.start(context);
plugin = this;
String giDirSetting = CoreHub.localCfg.get(Preferences.PREF_DIR, "NOTSET");
if("NOTSET".equals(giDirSetting)) {
File giDir = new File(CoreHub.getWritableUserDir(), "GlobalInbox");
boolean created = giDir.mkdir();
if(created) {
CoreHub.localCfg.set(Preferences.PREF_DIR, giDir.getAbsolutePath());
}
}
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext )
*/
public void stop(BundleContext context) throws Exception{
plugin = null;
super.stop(context);
}
/**
* Returns the shared instance
*
* @return the shared instance
*/
public static Activator getDefault(){
return plugin;
}
public InboxContentProvider getContentProvider(){
return contentProvider;
}
@Override
public void earlyStartup(){}
public String getCategory(File file){
String dir = CoreHub.localCfg.get(Preferences.PREF_DIR, Preferences.PREF_DIR_DEFAULT); //$NON-NLS-1$
File parent = file.getParentFile();
if (parent == null) {
return Messages.Activator_noInbox;
} else {
String fname = parent.getAbsolutePath();
if (fname.startsWith(dir)) {
if (fname.length() > dir.length()) {
return fname.substring(dir.length() + 1);
} else {
return "-"; //$NON-NLS-1$
}
} else {
return "??"; //$NON-NLS-1$
}
}
}
}