001 // GraphLab Project: http://graphlab.sharif.edu 002 // Copyright (C) 2008 Mathematical Science Department of Sharif University of Technology 003 // Distributed under the terms of the GNU General Public License (GPL): http://www.gnu.org/licenses/ 004 005 package graphlab.plugins.main.core.actions.preferences; 006 007 import graphlab.platform.core.AbstractAction; 008 import graphlab.platform.core.BlackBoard; 009 import graphlab.platform.preferences.AbstractPreference; 010 import graphlab.platform.preferences.Preferences; 011 import graphlab.platform.preferences.lastsettings.StorableOnExit; 012 import graphlab.ui.UIUtils; 013 import graphlab.ui.components.prefeditor.GPrefPane; 014 015 import java.util.HashMap; 016 import java.util.Iterator; 017 018 /** 019 * @author Rouzbeh Ebrahimi 020 */ 021 public class PreferencesAction extends AbstractAction implements StorableOnExit { 022 public static final String EVENT_KEY = UIUtils.getUIEventKey("Prefs"); 023 Preferences pref; 024 025 public PreferencesAction(BlackBoard bb) { 026 super(bb); 027 listen4Event(EVENT_KEY); 028 pref = bb.getData("Preferences"); 029 030 } 031 032 033 public void performAction(String eventName, Object value) { 034 pref.retrieveEveryItem(); 035 // HashMap<String, HashSet<AbstractPreference>> complicatedTabs = new HashMap<String, HashSet<AbstractPreference>>(); 036 managePrefUI(); 037 } 038 039 040 private void managePrefUI() { 041 HashMap<String, AbstractPreference> tabs = new HashMap<String, AbstractPreference>(); 042 Iterator<AbstractPreference> iterator = pref.set.iterator(); 043 044 for (; iterator.hasNext();) { 045 AbstractPreference ap = iterator.next(); 046 tabs.put(ap.preferenceName, ap); 047 } 048 049 // GTabbedAttributePane pane = new GTabbedAttributePane(tabs); 050 // GTabbedAttributeFrame.showEditDialog(pane,true); 051 GPrefPane gpp = new GPrefPane(blackboard, tabs); 052 gpp.setVisible(true); 053 } 054 055 056 }