/**
* <p>Copyright: Copyright (c) 2011</p>
* <p>Company: �������ӹɷ�����˾</p>
*/
package com.hundsun.ares.studio.jres.database.oracle.ui.editors;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.events.ExpansionEvent;
import org.eclipse.ui.forms.events.IExpansionListener;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.Section;
import com.hundsun.ares.studio.jres.database.oracle.ui.editors.blocks.TableSpaceBlock;
import com.hundsun.ares.studio.jres.database.oracle.ui.editors.blocks.TableSpaceRelationBlock;
import com.hundsun.ares.studio.ui.editor.EMFFormEditor;
import com.hundsun.ares.studio.ui.editor.EMFFormPage;
import com.hundsun.ares.studio.ui.editor.blocks.FormWidgetUtils;
/**
* @author wangxh
*
*/
public class OracleSpaceBasicPage extends EMFFormPage {
//Block
private TableSpaceBlock tableSpaceBlock;
private TableSpaceRelationBlock tableSpaceRelationBlock;
/**
* @param editor
* @param id
* @param title
*/
public OracleSpaceBasicPage(EMFFormEditor editor, String id, String title) {
super(editor, id, title);
}
/**
* ������ռ��б�����
* @param parent
* @param toolkit
* @return
*/
protected Section createColumnSection(Composite parent, FormToolkit toolkit) {
Section section = toolkit.createSection(parent, FormWidgetUtils.getDefaultSectionStyles());
section.setText("��ռ��б�");
tableSpaceBlock = new TableSpaceBlock(getEditingDomain(),getSite(), getEditor().getARESResource(), getProblemPool());
tableSpaceBlock.setEditableControl(getEditableControl());
tableSpaceBlock.createControl(section, toolkit);
getEditor().getActionBarContributor().addGlobalActionHandlerProvider(tableSpaceBlock);
addPropertyListener(tableSpaceBlock);
getEditingDomain().getCommandStack().addCommandStackListener(tableSpaceBlock);
section.setClient(tableSpaceBlock.getControl());
return section;
}
/**
* ����������ռ�����
* @param parent
* @param toolkit
* @return
*/
protected Section createIndexSection(Composite parent, FormToolkit toolkit) {
Section section = toolkit.createSection(parent, FormWidgetUtils.getDefaultSectionStyles());
section.setText("������ռ�");
tableSpaceRelationBlock = new TableSpaceRelationBlock(getEditingDomain(), getEditor().getARESResource(), getProblemPool());
tableSpaceRelationBlock.setEditableControl(getEditableControl());
tableSpaceRelationBlock.createControl(section, toolkit);
getEditor().getActionBarContributor().addGlobalActionHandlerProvider(tableSpaceRelationBlock);
addPropertyListener(tableSpaceRelationBlock);
getEditingDomain().getCommandStack().addCommandStackListener(tableSpaceRelationBlock);
section.setClient(tableSpaceRelationBlock.getControl());
return section;
}
@Override
protected void doCreateFormContent(IManagedForm managedForm) {
final Composite composite = managedForm.getForm().getBody();
FormToolkit toolkit = managedForm.getToolkit();
managedForm.getForm().setText(getTitle());
toolkit.decorateFormHeading(managedForm.getForm().getForm());
final Section columnSection = createColumnSection(composite, toolkit);
final Section indexSection = createIndexSection(composite, toolkit);
GridLayoutFactory.swtDefaults().applyTo(composite);
GridDataFactory.fillDefaults().grab(true, true).applyTo(columnSection);
GridDataFactory.fillDefaults().grab(true, true).applyTo(indexSection);
columnSection.addExpansionListener(new IExpansionListener() {
@Override
public void expansionStateChanging(ExpansionEvent e) {
}
@Override
public void expansionStateChanged(ExpansionEvent e) {
((GridData)columnSection.getLayoutData()).grabExcessVerticalSpace = columnSection.isExpanded();
composite.layout();
}
});
indexSection.addExpansionListener(new IExpansionListener() {
@Override
public void expansionStateChanging(ExpansionEvent e) {
}
@Override
public void expansionStateChanged(ExpansionEvent e) {
((GridData)indexSection.getLayoutData()).grabExcessVerticalSpace = indexSection.isExpanded();
composite.layout();
}
});
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.ui.form.EMFFormPage#infoChange()
*/
@Override
public void infoChange() {
tableSpaceBlock.setInput(getInfo());
tableSpaceRelationBlock.setInput(getInfo());
super.infoChange();
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.ui.form.EMFFormPage#dispose()
*/
@Override
public void dispose() {
removePropertyListener(tableSpaceBlock);
getEditingDomain().getCommandStack().removeCommandStackListener(tableSpaceBlock);
removePropertyListener(tableSpaceRelationBlock);
getEditingDomain().getCommandStack().removeCommandStackListener(tableSpaceRelationBlock);
super.dispose();
}
}