package com.hundsun.ares.studio.cres.ui.action;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
public class GenModuleCodeWithOutPathAction extends GenModuleCodeWithPathAction{
GenModuleCodeDialog dialog;
@Override
protected boolean isGenCodeWithPath() {
int type = dialog.getType();
if (GenModuleCodeType.NODIR_GENMODULE.getType() != type) {
return true;
}
return false;
}
@Override
protected boolean isGenCodeWithCNamePath() {
int type = dialog.getType();
if (GenModuleCodeType.CH_DIR_GENMODULE.getType() == type) {
return true;
}
return false;
}
@Override
public void run(IAction action) {
dialog = new GenModuleCodeDialog(getShell());
if (dialog.open() == Window.OK) {
super.run(action);
}
}
class GenModuleCodeDialog extends TitleAreaDialog {
private Combo combp;
private Button headCode;
private Button endCode;
private int type;
private boolean isHeadCode = false;
private boolean isEndCode = false;
public GenModuleCodeDialog(Shell parentShell) {
super(parentShell);
}
@Override
protected Control createContents(Composite parent) {
getShell().setText("ģ������");
return super.createContents(parent);
}
@Override
protected Control createDialogArea(Composite parent) {
Composite area = (Composite) super.createDialogArea(parent);
Composite masterCom = new Composite(area, SWT.NONE);
Group modeGroup = new Group(masterCom, SWT.BORDER);
modeGroup.setText("����ģʽ");
Label label = new Label(modeGroup, SWT.NONE);
label.setText("ģʽ");
combp = new Combo(modeGroup, SWT.NONE | SWT.READ_ONLY);
String[] items = getComboItem();
combp.setItems(items);
combp.setText(items[0]);
//Ĭ��ֵ
type = GenModuleCodeType.getType(items[0]);
combp.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
String text = combp.getText();
if (StringUtils.isNotBlank(text)) {
type = GenModuleCodeType.getType(text);
}
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
Group prodGroup = new Group(masterCom, SWT.BORDER);
prodGroup.setText("����");
headCode = new Button(prodGroup, SWT.CHECK);
headCode.setText("�Ƿ�����ǰ�ô���");
endCode = new Button(prodGroup, SWT.CHECK);
endCode.setText("�Ƿ����ɺ��ô���");
headCode.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
isHeadCode = headCode.getSelection();
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
endCode.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
isEndCode = endCode.getSelection();
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
// masterCom.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_YELLOW));
GridLayoutFactory.fillDefaults().numColumns(1).applyTo(masterCom);
GridLayoutFactory.fillDefaults().numColumns(2).applyTo(modeGroup);
GridLayoutFactory.fillDefaults().numColumns(1).applyTo(prodGroup);
GridDataFactory.fillDefaults().grab(true, true).applyTo(masterCom);
GridDataFactory.fillDefaults().grab(true, true).applyTo(modeGroup);
GridDataFactory.fillDefaults().grab(true, true).applyTo(prodGroup);
GridDataFactory.swtDefaults().applyTo(label);
GridDataFactory.fillDefaults().applyTo(headCode);
GridDataFactory.fillDefaults().applyTo(endCode);
return area;
}
private String[] getComboItem(){
List<String> types = new ArrayList<String>();
for(GenModuleCodeType type : GenModuleCodeType.getEnumTypes()){
types.add(type.getDesc());
}
return types.toArray(new String[types.size()]);
}
public int getType(){
return type;
}
public boolean isHeadCode(){
return isHeadCode;
}
public boolean isEndCode(){
return isEndCode;
}
}
}