14b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye/*******************************************************************************
24b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye * Copyright (c) 2011 Google, Inc.
34b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye * All rights reserved. This program and the accompanying materials
44b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye * are made available under the terms of the Eclipse Public License v1.0
54b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye * which accompanies this distribution, and is available at
64b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye * http://www.eclipse.org/legal/epl-v10.html
74b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye *
84b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye * Contributors:
94b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye *    Google, Inc. - initial API and implementation
104b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye *******************************************************************************/
114b1a9d7baa71df312585022c22e8025fafaba95aTor Norbyepackage org.eclipse.wb.core.controls.flyout;
124b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye
134b1a9d7baa71df312585022c22e8025fafaba95aTor Norbyeimport org.eclipse.jface.preference.IPreferenceStore;
144b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye
154b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye/**
164b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye * Implementation of {@link IFlyoutPreferences} for {@link IPreferenceStore}.
174b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye *
184b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye * @author scheglov_ke
194b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye * @coverage core.control
204b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye */
214b1a9d7baa71df312585022c22e8025fafaba95aTor Norbyepublic final class PluginFlyoutPreferences implements IFlyoutPreferences {
224b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  private final IPreferenceStore m_store;
234b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  private final String m_dockLocationKey;
244b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  private final String m_stateKey;
254b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  private final String m_widthKey;
264b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye
274b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  ////////////////////////////////////////////////////////////////////////////
284b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  //
294b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  // Constructor
304b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  //
314b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  ////////////////////////////////////////////////////////////////////////////
324b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  public PluginFlyoutPreferences(IPreferenceStore store, String prefix) {
334b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye    m_store = store;
344b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye    m_dockLocationKey = prefix + ".flyout.dockLocation";
354b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye    m_stateKey = prefix + ".flyout.state";
364b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye    m_widthKey = prefix + ".flyout.width";
374b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  }
384b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye
394b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  ////////////////////////////////////////////////////////////////////////////
404b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  //
414b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  // Access
424b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  //
434b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  ////////////////////////////////////////////////////////////////////////////
444b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  /**
454b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   * Initializes defaults using given values.
464b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye   */
474b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  public void initializeDefaults(int location, int state, int width) {
484b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye    m_store.setDefault(m_dockLocationKey, location);
494b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye    m_store.setDefault(m_stateKey, state);
504b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye    m_store.setDefault(m_widthKey, width);
514b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  }
524b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye
534b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  ////////////////////////////////////////////////////////////////////////////
544b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  //
554b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  // IFlyoutPreferences
564b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  //
574b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  ////////////////////////////////////////////////////////////////////////////
584b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  public int getDockLocation() {
594b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye    return m_store.getInt(m_dockLocationKey);
604b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  }
614b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye
624b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  public int getState() {
634b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye    return m_store.getInt(m_stateKey);
644b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  }
654b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye
664b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  public int getWidth() {
674b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye    return m_store.getInt(m_widthKey);
684b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  }
694b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye
704b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  public void setDockLocation(int location) {
714b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye    m_store.setValue(m_dockLocationKey, location);
724b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  }
734b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye
744b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  public void setState(int state) {
754b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye    m_store.setValue(m_stateKey, state);
764b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  }
774b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye
784b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  public void setWidth(int width) {
794b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye    m_store.setValue(m_widthKey, width);
804b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye  }
814b1a9d7baa71df312585022c22e8025fafaba95aTor Norbye}
82