blob: e7d85cd9bdfc6efa84c5b7a9aa160666a2348cbf [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2007 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
****************************************************************************/
package org.eclipse.gmf.runtime.gef.ui.palette.customize;
import org.eclipse.gef.palette.PaletteDrawer;
import org.eclipse.ui.IMemento;
/**
* Used to store, rollback, and apply palette customizations of a palette
* drawer.
*
* @since 2.1
* @author crevells
*/
public class PaletteDrawerState
extends PaletteEntryState {
private static final String INITIAL_STATE_KEY = "initialState"; //$NON-NLS-1$
int initialState;
public PaletteDrawerState(PaletteDrawer drawer) {
super(drawer);
}
public void storeState() {
super.storeState();
initialState = ((PaletteDrawer) getPaletteEntry()).getInitialState();
}
public void rollback() {
super.rollback();
((PaletteDrawer) getPaletteEntry()).setInitialState(initialState);
}
public void storeChangesInMemento(IMemento memento) {
super.storeChangesInMemento(memento);
PaletteDrawer drawer = ((PaletteDrawer) getPaletteEntry());
if (initialState != drawer.getInitialState()) {
memento.putInteger(INITIAL_STATE_KEY, drawer.getInitialState());
}
}
public void applyChangesFromMemento(IMemento entryMemento) {
super.applyChangesFromMemento(entryMemento);
Integer iValue = entryMemento.getInteger(INITIAL_STATE_KEY);
if (iValue != null) {
((PaletteDrawer) getPaletteEntry()).setInitialState(iValue);
}
}
}