/* * SoapUI, Copyright (C) 2004-2016 SmartBear Software * * Licensed under the EUPL, Version 1.1 or - as soon as they will be approved by the European Commission - subsequent * versions of the EUPL (the "Licence"); * You may not use this work except in compliance with the Licence. * You may obtain a copy of the Licence at: * * http://ec.europa.eu/idabc/eupl * * Unless required by applicable law or agreed to in writing, software distributed under the Licence is * distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the Licence for the specific language governing permissions and limitations * under the Licence. */ package com.eviware.soapui; import com.eviware.soapui.settings.UISettings; import com.eviware.soapui.support.UISupport; import com.eviware.soapui.ui.desktop.DesktopRegistry; import com.eviware.soapui.ui.desktop.standalone.StandaloneDesktopFactory; import com.jgoodies.looks.plastic.PlasticXPLookAndFeel; import com.jgoodies.looks.plastic.theme.SkyBluer; import javax.swing.ToolTipManager; import javax.swing.UIManager; import javax.swing.plaf.ColorUIResource; import java.awt.Color; import java.awt.Insets; public class StandaloneSoapUICore extends SwingSoapUICore { public StandaloneSoapUICore(boolean init) { super(); if (init) { init(DEFAULT_SETTINGS_FILE); } } public StandaloneSoapUICore(String settingsFile) { super(null, settingsFile); } public StandaloneSoapUICore(boolean init, String soapUISettingsPassword) { super(true, soapUISettingsPassword); if (init) { init(DEFAULT_SETTINGS_FILE); } } @Override public void prepareUI() { super.prepareUI(); initSoapUILookAndFeel(); DesktopRegistry.getInstance().addDesktop(SoapUI.DEFAULT_DESKTOP, new StandaloneDesktopFactory()); ToolTipManager.sharedInstance().setEnabled(!getSettings().getBoolean(UISettings.DISABLE_TOOLTIPS)); } public void initSoapUILookAndFeel() { try { // Enabling native look & feel by default on Mac OS X if (UISupport.isMac()) { javax.swing.UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); getSettings().setBoolean(UISettings.NATIVE_LAF, true); log.info("Defaulting to native L&F for Mac OS X"); } else if (getSettings().getBoolean(UISettings.NATIVE_LAF)) { javax.swing.UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } else { SoapUITheme theme = new SoapUITheme(); PlasticXPLookAndFeel.setCurrentTheme(theme); PlasticXPLookAndFeel.setTabStyle("Metal"); UIManager.setLookAndFeel(new PlasticXPLookAndFeel()); UIManager.put("TabbedPane.tabAreaInsets", new Insets(3, 2, 0, 0)); UIManager.put("TabbedPane.unselectedBackground", new Color(220, 220, 220)); UIManager.put("TabbedPane.selected", new Color(240, 240, 240)); PlasticXPLookAndFeel.setPlasticTheme(theme); } } catch (Exception e) { SoapUI.logError(e, "Error initializing Look and Feel"); } } /** * Adapted theme for SoapUI Look and Feel * * @author ole.matzura */ public static class SoapUITheme extends SkyBluer { public static final Color BACKGROUND_COLOR = new Color(240, 240, 240); @Override public ColorUIResource getControl() { return new ColorUIResource(BACKGROUND_COLOR); } @Override public ColorUIResource getMenuBackground() { return getControl(); } @Override public ColorUIResource getMenuItemBackground() { return new ColorUIResource(new Color(248, 248, 248)); } } }