/**
* <p>Copyright: Copyright (c) 2011</p>
* <p>Company: �������ӹɷ�����˾</p>
*/
package com.hundsun.ares.studio.jres.database.oracle.ui.editors;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.ide.IGotoMarker;
import com.hundsun.ares.studio.core.model.RevisionHistory;
import com.hundsun.ares.studio.jres.database.ui.editors.DBSQLPreviewPage;
import com.hundsun.ares.studio.jres.database.ui.editors.DatabaseEMFFormEditor;
import com.hundsun.ares.studio.jres.model.database.oracle.OraclePackage;
import com.hundsun.ares.studio.ui.editor.blocks.RevisionHistoryListPage;
import com.hundsun.ares.studio.ui.editor.text.TextEditorInput;
/**
* @author wangxh
*
*/
public class OracleSpaceEditor extends DatabaseEMFFormEditor {
//Oracle�û�Ȩ�ޱ༭��ҳ��
private OracleSpaceBasicPage oracleSpaceBasicPage;
//�û�����Ϣҳ��
protected RevisionHistoryListPage historyPage;
@Override
protected EClass getInfoClass() {
return OraclePackage.Literals.ORACLE_SPACE_RESOURCE_DATA;
}
@Override
protected void addPages() {
try {
oracleSpaceBasicPage = new OracleSpaceBasicPage(this, "oraclespace", "Oracle��ռ�");
addPage(oracleSpaceBasicPage);
addPage(new DBSQLPreviewPage(this, "preview", "SQLԤ��"), new TextEditorInput());
historyPage = new RevisionHistoryListPage(this ,"histroy", "����Ϣ");
addPage(historyPage);
// ���SQLԤ����֧��
addPageChangedListener(new TableSpaceSQLPreviewUpdater());
} catch (PartInitException e) {
e.printStackTrace();
}
}
@Override
public Object getAdapter(Class adapter) {
if (adapter == IGotoMarker.class) {
return new IGotoMarker() {
@Override
public void gotoMarker(IMarker marker) {
String uri;
try {
uri = (String) marker.getAttribute(IMarker.LOCATION);
EObject obj = getInfo().eResource().getEObject(uri);
if(obj instanceof RevisionHistory) {
historyPage.getEditor().setActivePage(historyPage.getId());
historyPage.getColumnViewer().setSelection(new StructuredSelection(obj), true);
}
else
{
oracleSpaceBasicPage.getEditor().setActivePage(oracleSpaceBasicPage.getId());
}
} catch (CoreException e) {
e.printStackTrace();
}
}
};
}
return super.getAdapter(adapter);
}
}