/** * $RCSfile: ,v $ * $Revision: $ * $Date: $ * * Copyright (C) 2004-2011 Jive Software. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jivesoftware.spark.roar; import java.awt.EventQueue; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JComponent; import org.jivesoftware.spark.preference.Preference; import org.jivesoftware.spark.roar.gui.RoarPreferencePanel; import org.jivesoftware.spark.util.log.Log; /** * Awesome Preference * @author wolf.posdorfer * */ public class RoarPreference implements Preference { private RoarPreferencePanel _prefPanel; private RoarProperties _props; public RoarPreference() { _props = RoarProperties.getInstance(); try { if (EventQueue.isDispatchThread()) { _prefPanel = new RoarPreferencePanel(); } else { EventQueue.invokeAndWait(new Runnable() { @Override public void run() { _prefPanel = new RoarPreferencePanel(); } }); } } catch (Exception e) { Log.error(e); } } @Override public String getTitle() { return "ROAR"; } @Override public Icon getIcon() { ClassLoader cl = getClass().getClassLoader(); return new ImageIcon(cl.getResource("roar-logo.png")); } @Override public String getTooltip() { return "ROAR"; } @Override public String getListName() { return "ROAR"; } @Override public String getNamespace() { return "roar"; } @Override public JComponent getGUI() { return _prefPanel; } @Override public void load() { _prefPanel.setColor(RoarPreferencePanel.ColorTypes.BACKGROUNDCOLOR, _props.getBackgroundColor()); _prefPanel.setColor(RoarPreferencePanel.ColorTypes.HEADERCOLOR, _props.getHeaderColor()); _prefPanel.setColor(RoarPreferencePanel.ColorTypes.TEXTCOLOR, _props.getTextColor()); _prefPanel.setDisplayType(_props.getDisplayType()); _prefPanel.setShowingPopups(_props.getShowingPopups()); _prefPanel.setDuration(_props.getDuration()); _prefPanel.setAmount(_props.getMaximumPopups()); } @Override public void commit() { _props.setDuration(_prefPanel.getDuration()); _props.setShowingPopups(_prefPanel.getShowingPopups()); _props.setBackgroundColor(_prefPanel.getColor(RoarPreferencePanel.ColorTypes.BACKGROUNDCOLOR)); _props.setHeaderColor(_prefPanel.getColor(RoarPreferencePanel.ColorTypes.HEADERCOLOR)); _props.setTextColor(_prefPanel.getColor(RoarPreferencePanel.ColorTypes.TEXTCOLOR)); _props.setDisplayType(_prefPanel.getDisplayType()); _props.setMaximumPopups(_prefPanel.getAmount()); _props.save(); } @Override public boolean isDataValid() { return true; } @Override public String getErrorMessage() { return "roooooooooaaaaaar"; } @Override public Object getData() { return _props; } @Override public void shutdown() { } }