package com.hundsun.ares.studio.cres.extend.ui.project;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.databinding.edit.EMFEditObservables;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.edit.command.AddCommand;
import org.eclipse.jface.databinding.swt.SWTObservables;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.forms.events.ExpansionAdapter;
import org.eclipse.ui.forms.events.ExpansionEvent;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.Section;
import org.eclipse.ui.forms.widgets.TableWrapData;
import com.hundsun.ares.studio.cres.extend.core.constants.ICresExtendConstants;
import com.hundsun.ares.studio.cres.extend.cresextend.CresProjectExtendProperty;
import com.hundsun.ares.studio.cres.extend.cresextend.CresextendFactory;
import com.hundsun.ares.studio.cres.extend.cresextend.CresextendPackage;
import com.hundsun.ares.studio.cres.extend.cresextend.FileDefine;
import com.hundsun.ares.studio.cres.extend.cresextend.GccDefine;
import com.hundsun.ares.studio.cres.extend.cresextend.MvcDefine;
import com.hundsun.ares.studio.cres.extend.cresextend.ProcDefine;
import com.hundsun.ares.studio.internal.core.ARESProjectProperty;
import com.hundsun.ares.studio.ui.editor.ProjectPropertyEditor;
import com.hundsun.ares.studio.ui.editor.blocks.EMFExtendSectionScrolledFormPage;
import com.hundsun.ares.studio.ui.editor.blocks.FormWidgetUtils;
import com.hundsun.ares.studio.ui.util.FormLayoutFactory;
public class CresProjectPropertyPage extends EMFExtendSectionScrolledFormPage<ARESProjectProperty> {
private Text txtVersion;
private Text txtCName;
private Text txtShortCName;
private Text txtID;
private Text txtManager;
private Text txtDeveloper;
private Text txtUser;
private Text txtRelation;
private Text txtName;
private Text txtWriter;
private Text txtNote;
private Text txtHeadFile;
/**
* @param editor
* @param id
* @param title
*/
public CresProjectPropertyPage(FormEditor editor, String id, String title) {
super(editor, id, title);
System.out.println(info);
///
ARESProjectProperty info1 = getInfo();
System.out.println(info1);
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.ui.editor.blocks.EMFExtendSectionScrolledFormPage#getEClass()
*/
@Override
protected EClass getEClass() {
return CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY;
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.ui.editor.blocks.EMFExtendSectionScrolledFormPage#getMapKey()
*/
@Override
protected String getMapKey() {
return ICresExtendConstants.CRES_EXTEND_PROJECT_PROPERTY;
}
protected SashForm sf;
protected Section procSection;
protected Section gccSection;
protected Section mvcSection;
protected Section func;
/* (non-Javadoc)
* @see com.hundsun.ares.studio.ui.page.ExtendSectionScrolledFormPage#createSections(org.eclipse.ui.forms.IManagedForm)
*/
@Override
protected void createSections(IManagedForm managedForm) {
Composite composite = managedForm.getForm().getBody();
FormToolkit toolkit = managedForm.getToolkit();
managedForm.getForm().setText(getTitle());
toolkit.decorateFormHeading(managedForm.getForm().getForm());
createBasicInfoSection(composite,toolkit,"������Ϣ");
sf = new SashForm(composite, SWT.VERTICAL);
TableWrapData twd = new TableWrapData(TableWrapData.FILL_GRAB);
twd.heightHint = 650;
sf.setLayoutData(twd);
sf.setLayout(FormLayoutFactory.createClearTableWrapLayout(false, 1));
createSection(toolkit);
composite.setLayout(FormLayoutFactory.createClearTableWrapLayout(false, 1));
composite.getParent().layout();
}
protected void createSection(FormToolkit toolkit) {
procSection = createFileDefineSection(sf, toolkit,"ProcԤ��������",
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__PROC_DEFINE,
CresextendPackage.Literals.PROC_DEFINE);
gccSection = createFileDefineSection(sf, toolkit,"GCC�ļ��Զ�������",
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__GCC_DEFINE,
CresextendPackage.Literals.GCC_DEFINE);
mvcSection = createFileDefineSection(sf,toolkit,"MVC�ļ��Զ�������",
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__MVC_DEFINE,
CresextendPackage.Literals.MVC_DEFINE);
func = createFuncDefineSection(sf,toolkit,"��������ͷ�ļ�����",
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__FUNC_DEFINE,
CresextendPackage.Literals.FILE_DEFINE);
sf.setWeights(new int[]{1,1,1,1});
procSection.addExpansionListener(new ExpansionAdapter() {
@Override
public void expansionStateChanged(ExpansionEvent e) {
refreshSFWeights();
}
});
gccSection.addExpansionListener(new ExpansionAdapter() {
@Override
public void expansionStateChanged(ExpansionEvent e) {
refreshSFWeights();
}
});
mvcSection.addExpansionListener(new ExpansionAdapter() {
@Override
public void expansionStateChanged(ExpansionEvent e) {
refreshSFWeights();
}
});
func.addExpansionListener(new ExpansionAdapter() {
@Override
public void expansionStateChanged(ExpansionEvent e) {
refreshSFWeights();
}
});
}
private void refreshSFWeights(){
int unit = 31;
int shrinkNum = 0;
if(procSection != null && !procSection.isExpanded()){
shrinkNum ++;
}
if(!gccSection.isExpanded()){
shrinkNum ++;
}
if(!mvcSection.isExpanded()){
shrinkNum ++;
}
if(!func.isExpanded()){
shrinkNum ++;
}
if(shrinkNum == 4){
sf.setWeights(new int[]{1,1,1,unit-3});
return;
}
int inputWeight = procSection.isExpanded() ? (unit-shrinkNum)/(4-shrinkNum) : 1;
int outputWeight = gccSection.isExpanded() ? (unit-shrinkNum)/(4-shrinkNum) : 1;
int internalWeight = mvcSection.isExpanded() ? (unit-shrinkNum)/(4-shrinkNum) : 1;
int funcWeight = func.isExpanded() ? (unit-shrinkNum)/(4-shrinkNum) : 1;
sf.setWeights(new int[]{inputWeight,outputWeight,internalWeight,funcWeight});
}
/**
* @param sf
* @param toolkit
* @param title
* @param reference
* @param procDefine
* @return
*/
protected Section createFileDefineSection(SashForm sf, FormToolkit toolkit,
String title, EReference reference,
EClass eclass) {
Section section = toolkit.createSection(sf, FormWidgetUtils.getDefaultSectionStyles());
section.setText(title);
Composite content = toolkit.createComposite(section);
GridLayoutFactory.fillDefaults().applyTo(content);
Composite comp = toolkit.createComposite(content, SWT.NONE);
GridDataFactory.fillDefaults().indent(0, 0).grab(true, true).applyTo(comp);
comp.setLayout(new FillLayout());
CresProjectFileDefineBlock block = new CresProjectFileDefineBlock(
reference,
getEditingDomain(), resource,
eclass,null);
block.createControl(comp, toolkit);
block.setInput(getInfo());
addPropertyListener(block);
getEditingDomain().getCommandStack().addCommandStackListener(block);
section.setClient(content);
toolkit.paintBordersFor(content);
return section;
}
/**
* @param sf
* @param toolkit
* @param title
* @param reference
* @param procDefine
* @return
*/
protected Section createFuncDefineSection(SashForm sf, FormToolkit toolkit,
String title, EReference reference,
EClass eclass) {
Section section = toolkit.createSection(sf, FormWidgetUtils.getDefaultSectionStyles());
section.setText(title);
Composite content = toolkit.createComposite(section);
GridLayoutFactory.fillDefaults().applyTo(content);
Composite comp = toolkit.createComposite(content, SWT.NONE);
GridDataFactory.fillDefaults().indent(0, 0).grab(true, true).applyTo(comp);
comp.setLayout(new FillLayout());
PublicFunctionDefineBlock block = new PublicFunctionDefineBlock(
reference,
getEditingDomain(),
((ProjectPropertyEditor)getEditor()).getARESProject(),
eclass,null);
block.createControl(comp, toolkit);
block.setInput(getInfo());
addPropertyListener(block);
getEditingDomain().getCommandStack().addCommandStackListener(block);
section.setClient(content);
toolkit.paintBordersFor(content);
return section;
}
/**
* @param composite
* @param toolkit
* @param title
*/
private void createBasicInfoSection(Composite composite,
FormToolkit toolkit, String title) {
Section section = toolkit.createSection(composite, FormWidgetUtils.getDefaultSectionStyles());
section.setText(title);
// �����ؼ�
Composite baseInfo = toolkit.createComposite(section);
Label lbVersion = toolkit.createLabel(baseInfo, "��Ʒ�汾��", SWT.NONE);
txtVersion = toolkit.createText(baseInfo, "", SWT.BORDER);
Label lbCName = toolkit.createLabel(baseInfo, "��Ʒ���ƣ�", SWT.NONE);
txtCName = toolkit.createText(baseInfo, "", SWT.BORDER);
Label lbShortCName = toolkit.createLabel(baseInfo, "��Ʒ��ƣ�", SWT.NONE);
txtShortCName = toolkit.createText(baseInfo, "", SWT.BORDER);
Label lbID = toolkit.createLabel(baseInfo, "��Ŀ��ţ�", SWT.NONE);
txtID = toolkit.createText(baseInfo, "", SWT.BORDER);
Label lbManager = toolkit.createLabel(baseInfo, "��������ߣ�", SWT.NONE);
txtManager = toolkit.createText(baseInfo, "", SWT.BORDER);
Label lbDeveloper = toolkit.createLabel(baseInfo, "�����ߣ�", SWT.NONE);
txtDeveloper = toolkit.createText(baseInfo, "", SWT.BORDER);
Label lbUser = toolkit.createLabel(baseInfo, "�û���", SWT.NONE);
txtUser = toolkit.createText(baseInfo, "", SWT.BORDER);
Label lbRelation = toolkit.createLabel(baseInfo, "ͬ����ϵͳ��ϵ��", SWT.NONE);
txtRelation = toolkit.createText(baseInfo, "", SWT.BORDER);
Label lbName = toolkit.createLabel(baseInfo, "Ӣ����д��", SWT.NONE);
txtName = toolkit.createText(baseInfo, "", SWT.BORDER);
Label lbWriter = toolkit.createLabel(baseInfo, "��д�ˣ�", SWT.NONE);
txtWriter = toolkit.createText(baseInfo, "", SWT.BORDER);
Label lbNote = toolkit.createLabel(baseInfo, "��д˵����", SWT.NONE);
txtNote = toolkit.createText(baseInfo, "", SWT.BORDER);
Label lbHeadFile = toolkit.createLabel(baseInfo, "�ļ�ͷע�ͣ�", SWT.NONE);
txtHeadFile = toolkit.createText(baseInfo, "", SWT.BORDER | SWT.V_SCROLL | SWT.WRAP);
//����
section.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
baseInfo.setLayout(new GridLayout(2, false));
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).grab(false, false).span(1, 1).applyTo(lbVersion);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(1, 1).applyTo(txtVersion);
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).grab(false, false).span(1, 1).applyTo(lbCName);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(1, 1).applyTo(txtCName);
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).grab(false, false).span(1, 1).applyTo(lbShortCName);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(1, 1).applyTo(txtShortCName);
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).grab(false, false).span(1, 1).applyTo(lbID);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(1, 1).applyTo(txtID);
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).grab(false, false).span(1, 1).applyTo(lbManager);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(1, 1).applyTo(txtManager);
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).grab(false, false).span(1, 1).applyTo(lbDeveloper);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(1, 1).applyTo(txtDeveloper);
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).grab(false, false).span(1, 1).applyTo(lbUser);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(1, 1).applyTo(txtUser);
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).grab(false, false).span(1, 1).applyTo(lbRelation);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(1, 1).applyTo(txtRelation);
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).grab(false, false).span(1, 1).applyTo(lbName);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(1, 1).applyTo(txtName);
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).grab(false, false).span(1, 1).applyTo(lbWriter);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(1, 1).applyTo(txtWriter);
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).grab(false, false).span(1, 1).applyTo(lbNote);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(1, 1).applyTo(txtNote);
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).grab(false, false).span(1, 1).applyTo(lbHeadFile);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).hint(20, 80).grab(true, false).span(1, 1).applyTo(txtHeadFile);
section.setClient(baseInfo);
toolkit.paintBordersFor(baseInfo);
databinding();
}
/**
*
*/
private void databinding() {
//��Ʒ�汾
getBindingContext().bindValue(SWTObservables.observeText(txtVersion, SWT.Modify),
EMFEditObservables.observeValue(getEditingDomain(), getModel(),
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__VERSION));
//��Ʒ����
getBindingContext().bindValue(SWTObservables.observeText(txtCName, SWT.Modify),
EMFEditObservables.observeValue(getEditingDomain(), getModel(),
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__CNAME));
//��Ʒ���
getBindingContext().bindValue(SWTObservables.observeText(txtShortCName, SWT.Modify),
EMFEditObservables.observeValue(getEditingDomain(), getModel(),
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__SHORT_CNAME));
//��Ŀ���
getBindingContext().bindValue(SWTObservables.observeText(txtID, SWT.Modify),
EMFEditObservables.observeValue(getEditingDomain(), getModel(),
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__ID));
//���������
getBindingContext().bindValue(SWTObservables.observeText(txtManager, SWT.Modify),
EMFEditObservables.observeValue(getEditingDomain(), getModel(),
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__MANAGER));
//������
getBindingContext().bindValue(SWTObservables.observeText(txtDeveloper, SWT.Modify),
EMFEditObservables.observeValue(getEditingDomain(), getModel(),
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__DEVELOPER));
//�û�
getBindingContext().bindValue(SWTObservables.observeText(txtUser, SWT.Modify),
EMFEditObservables.observeValue(getEditingDomain(), getModel(),
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__USER));
//ͬ����ϵͳ��ϵ
getBindingContext().bindValue(SWTObservables.observeText(txtRelation, SWT.Modify),
EMFEditObservables.observeValue(getEditingDomain(), getModel(),
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__RELATION));
//Ӣ�ļ��
getBindingContext().bindValue(SWTObservables.observeText(txtName, SWT.Modify),
EMFEditObservables.observeValue(getEditingDomain(), getModel(),
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__NAME));
//���
getBindingContext().bindValue(SWTObservables.observeText(txtWriter, SWT.Modify),
EMFEditObservables.observeValue(getEditingDomain(), getModel(),
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__WRITER));
//��д˵��
getBindingContext().bindValue(SWTObservables.observeText(txtNote, SWT.Modify),
EMFEditObservables.observeValue(getEditingDomain(), getModel(),
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__NOTE));
//�ļ�ͷע��
getBindingContext().bindValue(SWTObservables.observeText(txtHeadFile, SWT.Modify),
EMFEditObservables.observeValue(getEditingDomain(), getModel(),
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__HEAD_FILE));
////
initInfo();
}
/**
* �����������Ϣ��ʼ��ģ��
* @param owner
*/
protected void initInfo() {
if(info instanceof ARESProjectProperty) {
ARESProjectProperty pp = (ARESProjectProperty)info;
CresProjectExtendProperty owner = (CresProjectExtendProperty)pp.getMap().get(ICresExtendConstants.CRES_EXTEND_PROJECT_PROPERTY);
if(null == owner) {
return;
}
//��ʼ��
//gcc
EList<GccDefine> gccDefine = owner.getGccDefine();
if(gccDefine.isEmpty()) {
List<GccDefine> tmpGcc = new ArrayList<GccDefine>();
//PROC_INCLUDE
GccDefine gcc1 = CresextendFactory.eINSTANCE.createGccDefine();
gcc1.setIsUsed(true);
gcc1.setParameter("PROC_INCLUDE");
gcc1.setValue("$(ORACLE_HOME)/precomp/public," +
"$(ORACLE_HOME)/oci/include,"+
"$(FBASE_HOME),"+
"include=/usr/lib/gcc-lib/i386-redhat-linux/$(GCC_VER)/include");
gcc1.setNote("ProcԤ������������Ŀ¼���ö��Ÿ���");
tmpGcc.add(gcc1);
//CC_INCLUDE
GccDefine gcc2 = CresextendFactory.eINSTANCE.createGccDefine();
gcc2.setIsUsed(true);
gcc2.setParameter("CC_INCLUDE");
gcc2.setValue("$(FBASE_HOME),$(ORACLE_HOME)/precomp/public,$(ORACLE_HOME)/oci/include");
gcc2.setNote("C/C++�������İ���Ŀ¼�����Ÿ���");
tmpGcc.add(gcc2);
//"LIBS"
GccDefine gcc3 = CresextendFactory.eINSTANCE.createGccDefine();
gcc3.setIsUsed(true);
gcc3.setParameter("LIBS");
gcc3.setValue("");
gcc3.setNote("��Ҫ���ӵĵ��������ļ�,���Ÿ���");
tmpGcc.add(gcc3);
//"FC"
GccDefine gcc4 = CresextendFactory.eINSTANCE.createGccDefine();
gcc4.setIsUsed(true);
gcc4.setParameter("FC");
gcc4.setValue("");
gcc4.setNote("Ҫ����������,���������obj�ļ������,���Ÿ���");
tmpGcc.add(gcc4);
//ʹ��Command���
Command command = AddCommand.create(getEditingDomain(), owner,
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__GCC_DEFINE, tmpGcc);
getEditingDomain().getCommandStack().execute(command);
}
//proc
EList<ProcDefine> procDefine = owner.getProcDefine();
if(procDefine.isEmpty()) {
List<ProcDefine> tmpProc = new ArrayList<ProcDefine>();
//ireclen
ProcDefine proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(true);
proc.setParameter("ireclen");
proc.setValue("132");
proc.setNote("");
tmpProc.add(proc);
//oreclen
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(true);
proc.setParameter("oreclen");
proc.setValue("132");
proc.setNote("");
tmpProc.add(proc);
//auto_connect
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("auto_connect");
proc.setValue("no");
proc.setNote("�����Զ����ӵ� ops$ �ʻ�");
tmpProc.add(proc);
//char_map
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(true);
proc.setParameter("char_map");
proc.setValue("string");
proc.setNote("����ӳ���ַ�������ַ���");
tmpProc.add(proc);
//close_on_commit
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(true);
proc.setParameter("close_on_commit");
proc.setValue("yes");
proc.setNote("�ر����� COMMIT �α�");
tmpProc.add(proc);
//cmax
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("cmax");
proc.setValue("100");
proc.setNote("�������ӳص� CMAX ֵ 0 - 65535");
tmpProc.add(proc);
//cmin
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("cmin");
proc.setValue("2");
proc.setNote("�������ӳص� CMIN ֵ 1 - 65535");
tmpProc.add(proc);
//cincr
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("cincr");
proc.setValue("1");
proc.setNote("�������ӳص� CINCR ֵ 1 - 65535");
tmpProc.add(proc);
//ctimeout
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("ctimeout");
proc.setValue("0");
proc.setNote("�������ӳص� CTIMEOUT ֵ 1 - 65535");
tmpProc.add(proc);
//cnowait
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("cnowait");
proc.setValue("0");
proc.setNote("�������ӳص� CNOWAIT ֵ 1 - 65535");
tmpProc.add(proc);
//code
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(true);
proc.setParameter("code");
proc.setValue("cpp");
proc.setNote("��Ҫ���ɵĴ�������");
tmpProc.add(proc);
//comp_charset
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("comp_charset");
proc.setValue("multi_byte");
proc.setNote("C ������֧�ֵ��ַ�������");
tmpProc.add(proc);
//config
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("config");
proc.setValue("default");
proc.setNote("ʹ����һ�����ļ�����ϵͳ�����ļ�");
tmpProc.add(proc);
//cpool
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("cpool");
proc.setValue("no");
proc.setNote("֧�����ӹ���");
tmpProc.add(proc);
//cpp_suffix
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(true);
proc.setParameter("cpp_suffix");
proc.setValue("cpp");
proc.setNote("����Ĭ�ϵ� C++ �ļ�����");
tmpProc.add(proc);
//dbms
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("dbms");
proc.setValue("native");
proc.setNote("v6/v7/v8 ����ģʽ");
tmpProc.add(proc);
//def_sqlcode
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(true);
proc.setParameter("def_sqlcode");
proc.setValue("yes");
proc.setNote("���� '#define SQLCODE sqlca.sqlcode' ��");
tmpProc.add(proc);
//define
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(true);
proc.setParameter("define");
proc.setValue("USE_PRO_C");
proc.setNote("����Ԥ����������");
tmpProc.add(proc);
//duration
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("duration");
proc.setValue("transaction");
proc.setNote("transaction");
tmpProc.add(proc);
//dynamic
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("dynamic");
proc.setValue("oracle");
proc.setNote("ָ�� Oracle �� ANSI ��̬ SQL ����");
tmpProc.add(proc);
//errors
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("errors");
proc.setValue("yes");
proc.setNote("������Ϣ�Ƿ��͵��ն�");
tmpProc.add(proc);
//events
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("events");
proc.setValue("no");
proc.setNote("֧�ַ���-�����¼�֪ͨ");
tmpProc.add(proc);
//fips
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("fips");
proc.setValue("none");
proc.setNote("ANSI �������÷��� FIPS ��־");
tmpProc.add(proc);
//hold_cursor
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(true);
proc.setParameter("hold_cursor");
proc.setValue("yes");
proc.setNote("�����α���ٻ����е��α������");
tmpProc.add(proc);
//lines
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("lines");
proc.setValue("no");
proc.setNote("�����ɵĴ������������ָ��");
tmpProc.add(proc);
//ltype
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("ltype");
proc.setValue("short");
proc.setNote("���б��ļ����ɵ�������");
tmpProc.add(proc);
//maxliteral
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("maxliteral");
proc.setValue("1024");
proc.setNote("���ɵ��ַ�������������� 10 - 1024");
tmpProc.add(proc);
//maxopencursors
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(true);
proc.setParameter("maxopencursors");
proc.setValue("60");
proc.setNote("���ٻ���Ĵ��α���������");
tmpProc.add(proc);
//mode
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(true);
proc.setParameter("mode");
proc.setValue("ansi");
proc.setNote("����� Oracle �� ANSI �����˳Ӧ��");
tmpProc.add(proc);
//native_types
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("native_types");
proc.setValue("no");
proc.setNote("��������/˫����֧��");
tmpProc.add(proc);
//nls_local
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("nls_local");
proc.setValue("no");
proc.setNote("���������� NLS �ַ�����");
tmpProc.add(proc);
//objects
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("objects");
proc.setValue("yes");
proc.setNote("֧�ֶ�������");
tmpProc.add(proc);
//oraca
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("oraca");
proc.setValue("no");
proc.setNote("���� ORACA ��ʹ��");
tmpProc.add(proc);
//pagelen
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("pagelen");
proc.setValue("80");
proc.setNote("�б��ļ���ҳ���� 30 - 256");
tmpProc.add(proc);
//parse
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(true);
proc.setParameter("parse");
proc.setValue("partial");
proc.setNote("���ƶ���һ �� SQL ������������");
tmpProc.add(proc);
//prefetch
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(true);
proc.setParameter("prefetch");
proc.setValue("200");
proc.setNote("���α� OPEN ʱԤ����ȡ������ 0 - 65535");
tmpProc.add(proc);
//release_cursor
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("release_cursor");
proc.setValue("no");
proc.setNote("���ƴ��α���ٻ����ͷŵ��α���");
tmpProc.add(proc);
//select_error
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(true);
proc.setParameter("select_error");
proc.setValue("yes");
proc.setNote("����ѡ�����ı�־");
tmpProc.add(proc);
//sqlcheck
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(true);
proc.setParameter("sqlcheck");
proc.setValue("syntax");
proc.setNote("����ʱ SQL �ļ����");
tmpProc.add(proc);
//threads
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(true);
proc.setParameter("threads");
proc.setValue("yes");
proc.setNote("��ʾ���̵߳�Ӧ�ó���");
tmpProc.add(proc);
//type_code
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("type_code");
proc.setValue("oracle");
proc.setNote("ʹ�� Oracle ��̬ SQL �� ANSI ���ʹ���");
tmpProc.add(proc);
//unsafe_null
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("unsafe_null");
proc.setValue("no");
proc.setNote("����ʹ��ָʾ�����е� NULL ��ȡ");
tmpProc.add(proc);
//userid
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(true);
proc.setParameter("userid");
proc.setValue("hs_his/handsome@gfdb");
proc.setNote("�û���/���� [@dbname] �����ַ���");
tmpProc.add(proc);
//utf16_charset
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("utf16_charset");
proc.setValue("nchar_charset");
proc.setNote("�� UTF16 ����ʹ�õ��ַ�����");
tmpProc.add(proc);
//varchar
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("varchar");
proc.setValue("no");
proc.setNote("����ʹ����ʽ varchar �ṹ");
tmpProc.add(proc);
//version
proc = CresextendFactory.eINSTANCE.createProcDefine();
proc.setIsUsed(false);
proc.setParameter("version");
proc.setValue("recent");
proc.setNote("Ҫ������һ�汾�Ķ���");
tmpProc.add(proc);
//ʹ��Command���
Command command = AddCommand.create(getEditingDomain(), owner,
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__PROC_DEFINE, tmpProc);
getEditingDomain().getCommandStack().execute(command);
}
//mvc
EList<MvcDefine> mvcDefine = owner.getMvcDefine();
if(mvcDefine.isEmpty()) {
List<MvcDefine> tmpMvc = new ArrayList<MvcDefine>();
//"FBASE_HOME"
MvcDefine mvc1 = CresextendFactory.eINSTANCE.createMvcDefine();
mvc1.setIsUsed(true);
mvc1.setParameter("FBASE_HOME");
mvc1.setValue("../..");
mvc1.setNote("�����õ�Ĭ��ֵΪ../..");
tmpMvc.add(mvc1);
//"OUTDIR"
MvcDefine mvc2 = CresextendFactory.eINSTANCE.createMvcDefine();
mvc2.setIsUsed(true);
mvc2.setParameter("OUTDIR");
mvc2.setValue("$(FBASE_HOME)\\Bin");
mvc2.setNote("�����õ�Ĭ��ֵΪ$(FBASE_HOME)\\Bin");
tmpMvc.add(mvc2);
//"PROC_INCLUDE"
mvc2 = CresextendFactory.eINSTANCE.createMvcDefine();
mvc2.setIsUsed(true);
mvc2.setParameter("PROC_INCLUDE");
mvc2.setValue("$(ORACLE_HOME)/precomp/public," +
"$(ORACLE_HOME)/oci/include,"+
"$(FBASE_HOME),"+
"$(VC_HOME)");
mvc2.setNote("ProcԤ������������Ŀ¼���ö��Ÿ���");
tmpMvc.add(mvc2);
//"CC_INCLUDE"
mvc2 = CresextendFactory.eINSTANCE.createMvcDefine();
mvc2.setIsUsed(true);
mvc2.setParameter("CC_INCLUDE");
mvc2.setValue("$(FBASE_HOME),$(ORACLE_HOME)/precomp/public,$(ORACLE_HOME)/oci/include");
mvc2.setNote("C/C++�������İ���Ŀ¼�����Ÿ���");
tmpMvc.add(mvc2);
//"LIBS"
mvc2 = CresextendFactory.eINSTANCE.createMvcDefine();
mvc2.setIsUsed(true);
mvc2.setParameter("LIBS");
mvc2.setValue("");
mvc2.setNote("��Ҫ���ӵĵ��������ļ�,���Ÿ���");
tmpMvc.add(mvc2);
//ʹ��Command���
Command command = AddCommand.create(getEditingDomain(), owner,
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__MVC_DEFINE, tmpMvc);
getEditingDomain().getCommandStack().execute(command);
}
EList<FileDefine> funcDefine = owner.getFuncDefine();
if(funcDefine.isEmpty()){
FileDefine define = CresextendFactory.eINSTANCE.createFileDefine();
define.setIsUsed(true);
define.setValue("src\\s_libpublic.h");
define.setNote("ϵͳ��������");
//ʹ��Command���
Command command = AddCommand.create(getEditingDomain(), owner,
CresextendPackage.Literals.CRES_PROJECT_EXTEND_PROPERTY__FUNC_DEFINE, define);
getEditingDomain().getCommandStack().execute(command);
}
}
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.ui.page.ExtendPageWithMyDirtySystem#shouldLoad()
*/
@Override
public boolean shouldLoad() {
IProject project = getARESProject().getProject();
try {
if(project.hasNature(ICresExtendConstants.CRES_PROJECT_NATURE)){
return true;
}
} catch (CoreException e) {
e.printStackTrace();
return false;
}
return false;
}
}