Свяжите DXL с затмением / примечаниями и обработкой начала - PullRequest
2 голосов
/ 11 ноября 2009

Мне нужно иметь возможность дважды щелкнуть файл на рабочем столе и заставить Eclipse (или, точнее, Lotus Notes) запустить мое настраиваемое действие для его обработки и отображения. Я нашел

http://www.developer.com/java/other/article.php/3648736/Eclipse-Tip-Define-Custom-Content-Types-to-Identify-Your-Data-Files.htm

, который описывает, как настроить тип содержимого в eclipse и связать его с редактором. Это не совсем то, что мне нужно. У нас есть электронные письма, хранящиеся в формате DXL (Domino XML), и, хотя я могу открыть их внутри (через свои пользовательские функции), я не могу найти информацию о том, как выполнить их внешний запуск. Я надеюсь, что кто-то делал это раньше.

1 Ответ

1 голос
/ 14 ноября 2009

Я раньше этого не делал, но ... с помощью

EclipseEnvironmentInfo.getDefault().getCommandLineArgs()

вы можете получить аргументы командной строки, с которых eclipse запускается ("org.eclipse.core.runtime.internal.adaptor.EclipseEnvironmentInfo" является внутренним классом, но вы можете получить к нему доступ в любом случае ... на свой страх и риск;) ). Быстрый тест показывает, что если вы запустите файл с помощью eclipse, последним аргументом будет путь к этому файлу.

Обычный запуск:

-os, win32, -ws, win32, -arch, x86, -product, org.eclipse.epp.package.rcp.product

С файлом:

-os, win32, -ws, win32, -arch, x86, -product, org.eclipse.epp.package.rcp.product, D: \ Program \ Eclipse3.5-RCP \ readme \ readme_eclipse .html

Вы можете расширить точку расширения "org.eclipse.ui.startup" и реализовать "org.eclipse.ui.IStartup", чтобы проверить аргументы командной строки и вызвать собственную команду.

Вот мой тестовый класс:

import java.util.Arrays;

import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.internal.adaptor.EclipseEnvironmentInfo;
import org.eclipse.ui.IStartup;

import test.Activator;

public class Test implements IStartup {

 @Override
 public void earlyStartup() {
  String message = "Arguments: " + Arrays.toString(EclipseEnvironmentInfo.getDefault().getCommandLineArgs());
  Activator.getDefault().getLog().log(new Status(IStatus.INFO, "Test", message));
 }

}
...