Определить Window Builder - PullRequest
       4

Определить Window Builder

1 голос
/ 02 октября 2010

Я использую Google Window Builder Pro для SWT, и здесь мы используем множество пользовательских компонентов.Компоненты полагаются на использование в нашей среде, но это делает их непригодными для использования в Window Builder (исключения вызываются при использовании вне нашей структуры, например, в Window Builder).

Как определить, что Window Builderиспользуя наши компоненты, чтобы пропустить код, который опирается на нашу платформу?

Ответы [ 2 ]

2 голосов
/ 27 октября 2010

Я реализовал функцию Utility, которая создает дамп StackTrace и ищет в нем вещи из экземпляров.Это прекрасно работает:

/**
 * Designer mode. This is used to detect if the widgets are running
 * from SWT designer, because in this case we have to skip some
 * initialization code.
 */
private static Boolean designerMode;

/**
 * This is used to detect if the widgets are running
 * from SWT designer, because in this case we have to skip some
 * initialization code.
 */
public static boolean isDesignerMode() {
    if( designerMode == null ) {
        String s = StacktraceUtils.getStackTraceAsString(
                new RuntimeException("Just to get the Stacktrace."));
        designerMode = s.contains("com.instantiations.designer");  
    }
    return designerMode;
}
1 голос
/ 27 июля 2012

Таким способом вы можете напечатать Stacktrace как String (метод getStackTraceAsString () отсутствует в ответе Дэниела):

public static String getStackTraceAsString(Throwable t) {
    StringWriter sw = new StringWriter();
    PrintWriter pw = new PrintWriter(sw);
    t.printStackTrace(pw);
    return sw.toString(); // stack trace as a string
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...