/*
* Copyright 2005-8 Pi4 Technologies Ltd
*
* 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.
*
*
* Change History:
* 18 Jan 2008 : Initial version created by gary
*/
package org.savara.tools.scenario.designer.editor.properties;
import java.util.EventObject;
import org.eclipse.ui.views.properties.tabbed.*;
import org.eclipse.gef.commands.*;
/**
* This class provides the designer specific implementation
* of the tabbed property sheet page, supporting an undo
* command stack.
*/
public class DesignerTabbedPropertySheetPage extends TabbedPropertySheetPage {
/**
* This is the constructor for the designer tabbed
* property page.
*
* @param tabbedPropertySheetPageContributor
*/
public DesignerTabbedPropertySheetPage(
ITabbedPropertySheetPageContributor contributor,
CommandStack commandStack) {
super(contributor);
m_commandStack = commandStack;
m_contributor = contributor;
// Do a refresh for now, in case doing an undo on the model, as the
// property sheet does not get updated by direct model changes
m_commandStack.addCommandStackListener(new CommandStackListener() {
@Override
public void commandStackChanged(EventObject arg0) {
DesignerTabbedPropertySheetPage.this.refresh();
}
});
}
/**
* This method returns the command stack.
*
* @return The command stack
*/
public CommandStack getCommandStack() {
return(m_commandStack);
}
/**
* This method returns the resource associated with the
* tabbed properties sheet.
*
* @return The resource
*/
public org.eclipse.core.resources.IResource getResource() {
org.eclipse.core.resources.IResource ret=null;
if (m_contributor instanceof org.eclipse.ui.part.MultiPageEditorPart) {
ret = (org.eclipse.core.resources.IResource)
((org.eclipse.ui.part.MultiPageEditorPart)m_contributor).
getEditorInput().getAdapter(
org.eclipse.core.resources.IResource.class);
}
return(ret);
}
private CommandStack m_commandStack=null;
private ITabbedPropertySheetPageContributor m_contributor=null;
}