/*********************************************************************************** * * Copyright (c) 2014 Kamil Baczkowicz * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * and Eclipse Distribution License v1.0 which accompany this distribution. * * The Eclipse Public License is available at * http://www.eclipse.org/legal/epl-v10.html * * The Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * * Kamil Baczkowicz - initial API and implementation and/or initial documentation * */ package pl.baczkowicz.spy.ui.configuration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import pl.baczkowicz.spy.configuration.BaseConfigurationUtils; import pl.baczkowicz.spy.configuration.PropertyFileLoader; import pl.baczkowicz.spy.ui.panes.SpyPerspective; public class UiProperties { /** Initial and minimal scene/stage width. */ public final static int DEFAULT_WIDTH = 800; /** Initial and minimal scene/stage height. */ public final static int DEFAULT_HEIGHT = 600; public final static String WIDTH_PROPERTY = "application.width"; public final static String HEIGHT_PROPERTY = "application.height"; public final static String PERSPECTIVE_PROPERTY = "application.perspective"; public final static String MESSAGE_PANE_RESIZE_PROPERTY = "application.panes.message.resize"; public static final String MAXIMIZED_PROPERTY = "application.maximized"; public static final String SUMMARYTABLE_PAYLOAD_MAX = "ui.summarytable.columns.payload.maxlength"; public static final String BROWSER_LM_SIZE = "ui.messagebrowser.largemessage.size"; public static final String BROWSER_LM_HIDE = "ui.messagebrowser.largemessage.hide"; public static final String BROWSER_LM_SUBSTRING = "ui.messagebrowser.largemessage.substring"; private final static Logger logger = LoggerFactory.getLogger(UiProperties.class); private static Integer summaryMaxPayloadLength; private static Integer largeMessageSize; private static Boolean largeMessageHide; private static Integer largeMessageSubstring; public static double getApplicationHeight(final PropertyFileLoader fileLoader) { return BaseConfigurationUtils.getDoubleProperty(HEIGHT_PROPERTY, DEFAULT_HEIGHT, fileLoader); } public static boolean getApplicationMaximized(final PropertyFileLoader fileLoader) { return BaseConfigurationUtils.getBooleanProperty(MAXIMIZED_PROPERTY, Boolean.FALSE, fileLoader); } public static double getApplicationWidth(final PropertyFileLoader fileLoader) { return BaseConfigurationUtils.getDoubleProperty(WIDTH_PROPERTY, DEFAULT_WIDTH, fileLoader); } public static int getSummaryMaxPayloadLength(final PropertyFileLoader fileLoader) { if (summaryMaxPayloadLength == null) { summaryMaxPayloadLength = BaseConfigurationUtils.getIntegerProperty(SUMMARYTABLE_PAYLOAD_MAX, 250, fileLoader); } return summaryMaxPayloadLength; } public static int getLargeMessageSize(final PropertyFileLoader fileLoader) { if (largeMessageSize == null) { largeMessageSize = BaseConfigurationUtils.getIntegerProperty(BROWSER_LM_SIZE, 10000, fileLoader); } return largeMessageSize; } public static boolean getLargeMessageHide(final PropertyFileLoader fileLoader) { if (largeMessageHide == null) { largeMessageHide = BaseConfigurationUtils.getBooleanProperty(BROWSER_LM_HIDE, Boolean.FALSE, fileLoader); } return largeMessageHide; } public static int getLargeMessageSubstring(final PropertyFileLoader fileLoader) { if (largeMessageSubstring == null) { largeMessageSubstring = BaseConfigurationUtils.getIntegerProperty(BROWSER_LM_SUBSTRING, 1000, fileLoader); } return largeMessageSubstring; } public static SpyPerspective getApplicationPerspective(final PropertyFileLoader fileLoader) { final String value = fileLoader.getProperty(PERSPECTIVE_PROPERTY); try { return SpyPerspective.valueOf(value); } catch (IllegalArgumentException e) { logger.error("Invalid format " + value); return SpyPerspective.DEFAULT; } } public static boolean getResizeMessagePane(final PropertyFileLoader fileLoader) { return BaseConfigurationUtils.getBooleanProperty(MESSAGE_PANE_RESIZE_PROPERTY, Boolean.TRUE, fileLoader); } }