Files
openide/source/com/intellij/idea/CommandLineApplication.java
Maxim Shafirov 7460e5adae initial
2005-01-13 23:44:30 +03:00

69 lines
2.1 KiB
Java

package com.intellij.idea;
import com.intellij.diagnostic.DialogAppender;
import com.intellij.ide.impl.DataManagerImpl;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.application.ex.ApplicationManagerEx;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.vfs.local.win32.FileWatcher;
import org.apache.log4j.Appender;
import org.apache.log4j.Category;
import java.awt.*;
import java.util.Enumeration;
public abstract class CommandLineApplication {
private static final Logger LOG = Logger.getInstance("#com.intellij.idea.CommandLineApplication");
protected static CommandLineApplication ourInstance = null;
static {
System.setProperty(FileWatcher.PROPERTY_WATCHER_DISABLED, "true");
final Category category = Category.getRoot();
final Enumeration enumeration = category.getAllAppenders();
while (enumeration.hasMoreElements()) {
Object o = enumeration.nextElement();
if (o instanceof DialogAppender) {
category.removeAppender((Appender)o);
break;
}
}
}
protected CommandLineApplication() {}
protected CommandLineApplication(boolean isInternal, boolean isUnitTestMode, String componentsDescriptor) {
this(isInternal, isUnitTestMode, componentsDescriptor, "idea");
}
protected CommandLineApplication(boolean isInternal, boolean isUnitTestMode, String componentsDescriptor, String appName) {
LOG.assertTrue(ourInstance == null, "Only one instance allowed.");
ourInstance = this;
ApplicationManagerEx.createApplication(componentsDescriptor, isInternal, isUnitTestMode, appName);
}
public Object getData(String dataId) {
return null;
}
public static class MyDataManagerImpl extends DataManagerImpl {
public MyDataManagerImpl() {}
public DataContext getDataContext() {
return new DataContext() {
public Object getData(String dataId) {
return ourInstance.getData(dataId);
}
};
}
public DataContext getDataContext(Component component) {
return getDataContext();
}
public DataContext getDataContext(Component component, int x, int y) {
return getDataContext();
}
}
}