Java tutorial
/* Copyright (C) 2013 NTT DATA Corporation This program is free software; you can redistribute it and/or Modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. */ package com.clustercontrol.jobmanagement.composite; import java.util.ArrayList; import java.util.List; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import com.clustercontrol.util.WidgetTestUtil; import com.clustercontrol.bean.RequiredFieldColorConstant; import com.clustercontrol.bean.SizeConstant; import com.clustercontrol.dialog.ValidateResult; import com.clustercontrol.jobmanagement.bean.JobConstant; import com.clustercontrol.jobmanagement.dialog.JobTreeDialog; import com.clustercontrol.jobmanagement.util.JobDialogUtil; import com.clustercontrol.jobmanagement.util.JobUtil; import com.clustercontrol.util.Messages; import com.clustercontrol.ws.jobmanagement.JobInfo; import com.clustercontrol.ws.jobmanagement.JobTreeItem; /** * ????? * * @version 4.1.0 * @since 4.1.0 */ public class ReferComposite extends Composite { /** ?ID */ private Text m_textJobunitId = null; /** ?ID */ private Text m_textJobId = null; /** ? */ private Button m_buttonRefer = null; /** */ private Shell m_shell = null; /** ?ID*/ private String m_referJobUnitId = null; /** ?ID*/ private String m_referJobId = null; /** */ private JobTreeItem m_jobTreeItem = null; /** ? */ private JobTreeComposite m_jobTreeComposite = null; /** ID */ private String m_ownerRoleId = null; /** ? */ private int m_referJobType = JobConstant.TYPE_REFERJOB; /* * ?? * 0 : ??? * 1 : ???? */ private Integer m_selectType = null; /** ????? */ private Button m_selectFromJobTreeRadio = null; /** ?????? */ private Button m_selectFromRegisteredModuleRadio = null; /** ?? */ private Combo m_ComboRegisteredModuleCombo = null; /** ?? */ List<JobInfo> registeredJobList = null; /** * * * @param parent ? * @param style * * @see org.eclipse.swt.SWT * @see org.eclipse.swt.widgets.Composite#Composite(Composite parent, int style) * @see #initialize() */ public ReferComposite(Composite parent, int style) { super(parent, style); initialize(); m_shell = this.getShell(); } /** * ????? */ private void initialize() { this.setLayout(JobDialogUtil.getParentLayout()); // Composite Composite referComposite = new Composite(this, SWT.NONE); referComposite.setLayout(new GridLayout(3, false)); //????? this.m_selectFromJobTreeRadio = new Button(referComposite, SWT.RADIO); WidgetTestUtil.setTestId(this, "m_selectFromJobTreeRadio", this.m_selectFromJobTreeRadio); this.m_selectFromJobTreeRadio.setText(Messages.getString("job.select.jobtree")); GridData gridDataRadio = new GridData(); gridDataRadio.horizontalSpan = 3; gridDataRadio.horizontalAlignment = GridData.FILL; gridDataRadio.grabExcessHorizontalSpace = true; this.m_selectFromJobTreeRadio.setLayoutData(gridDataRadio); // ? this.m_selectFromJobTreeRadio.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { update(); } }); // ID Label jobunitLabel = new Label(referComposite, SWT.NONE); jobunitLabel.setText(Messages.getString("jobunit.id")); // ID Label jobLabel = new Label(referComposite, SWT.NONE); jobLabel.setText(Messages.getString("job.id")); // dummy new Label(referComposite, SWT.NONE); // ID this.m_textJobunitId = new Text(referComposite, SWT.BORDER | SWT.READ_ONLY); WidgetTestUtil.setTestId(this, "m_textJobunitId", this.m_textJobunitId); this.m_textJobunitId.setLayoutData(new GridData(150, SizeConstant.SIZE_TEXT_HEIGHT)); this.m_textJobunitId.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent arg0) { update(); } }); // ID this.m_textJobId = new Text(referComposite, SWT.BORDER | SWT.READ_ONLY); WidgetTestUtil.setTestId(this, "m_textJobId", this.m_textJobId); this.m_textJobId.setLayoutData(new GridData(150, SizeConstant.SIZE_TEXT_HEIGHT)); // ?? this.m_buttonRefer = new Button(referComposite, SWT.NONE); WidgetTestUtil.setTestId(this, "m_buttonRefer", this.m_buttonRefer); this.m_buttonRefer.setLayoutData(new GridData(80, SizeConstant.SIZE_BUTTON_HEIGHT)); this.m_buttonRefer.setText(Messages.getString("refer")); this.m_buttonRefer.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { // JobTreeDialog dialog = new JobTreeDialog(m_shell, m_ownerRoleId, m_jobTreeItem, JobConstant.TYPE_REFERJOB); if (dialog.open() == IDialogConstants.OK_ID) { JobTreeItem selectItem = dialog.getSelectItem().isEmpty() ? null : dialog.getSelectItem().get(0); if (selectItem != null && selectItem.getData().getType() != JobConstant.TYPE_COMPOSITE) { m_textJobId.setText(selectItem.getData().getId()); m_textJobunitId.setText(selectItem.getData().getJobunitId()); if (selectItem.getData().getType() == JobConstant.TYPE_JOBNET) { m_referJobType = JobConstant.TYPE_REFERJOBNET; } else { m_referJobType = JobConstant.TYPE_REFERJOB; } } else { m_textJobId.setText(""); m_textJobunitId.setText(""); } } } }); // dummy new Label(referComposite, SWT.NONE); //?????? this.m_selectFromRegisteredModuleRadio = new Button(referComposite, SWT.RADIO); WidgetTestUtil.setTestId(this, "m_selectFromRegisteredModuleRadio", this.m_selectFromRegisteredModuleRadio); this.m_selectFromRegisteredModuleRadio.setText(Messages.getString("job.select.module")); gridDataRadio = new GridData(); gridDataRadio.horizontalSpan = 3; gridDataRadio.horizontalAlignment = GridData.FILL; gridDataRadio.grabExcessHorizontalSpace = true; this.m_selectFromRegisteredModuleRadio.setLayoutData(gridDataRadio); // ? this.m_selectFromRegisteredModuleRadio.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { update(); } }); //???? this.m_ComboRegisteredModuleCombo = new Combo(referComposite, SWT.RIGHT | SWT.BORDER | SWT.READ_ONLY); WidgetTestUtil.setTestId(this, "m_ComboRegisteredModuleCombo", m_ComboRegisteredModuleCombo); GridData gridData = new GridData(); gridData.horizontalSpan = 3; gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; gridData.widthHint = 385; this.m_ComboRegisteredModuleCombo.setLayoutData(gridData); //??????reflectReferInfo()? this.m_ComboRegisteredModuleCombo.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { update(); if (m_ComboRegisteredModuleCombo.getText() != null && !"".equals(m_ComboRegisteredModuleCombo.getText().trim())) { JobInfo info = registeredJobList.get(m_ComboRegisteredModuleCombo.getSelectionIndex()); if (info.getType() == JobConstant.TYPE_JOBNET) { m_referJobType = JobConstant.TYPE_REFERJOBNET; } else { m_referJobType = JobConstant.TYPE_REFERJOB; } } } }); reflectReferInfo(); } /** * ? * */ @Override public void update() { //????? if (m_selectFromJobTreeRadio.getSelection()) { m_selectType = 0; m_textJobunitId.setEnabled(true); m_textJobId.setEnabled(true); m_buttonRefer.setEnabled(true); m_ComboRegisteredModuleCombo.setEnabled(false); // if ("".equals(this.m_textJobunitId.getText())) { this.m_textJobunitId.setBackground(RequiredFieldColorConstant.COLOR_REQUIRED); } else { this.m_textJobunitId.setBackground(RequiredFieldColorConstant.COLOR_UNREQUIRED); } if ("".equals(this.m_textJobId.getText())) { this.m_textJobId.setBackground(RequiredFieldColorConstant.COLOR_REQUIRED); } else { this.m_textJobId.setBackground(RequiredFieldColorConstant.COLOR_UNREQUIRED); } m_ComboRegisteredModuleCombo.setBackground(RequiredFieldColorConstant.COLOR_UNREQUIRED); //?????? } else if (m_selectFromRegisteredModuleRadio.getSelection()) { m_selectType = 1; m_textJobunitId.setEnabled(false); m_textJobId.setEnabled(false); m_buttonRefer.setEnabled(false); m_ComboRegisteredModuleCombo.setEnabled(true); // if (("").equals(m_ComboRegisteredModuleCombo.getText())) { m_ComboRegisteredModuleCombo.setBackground(RequiredFieldColorConstant.COLOR_REQUIRED); } else { m_ComboRegisteredModuleCombo.setBackground(RequiredFieldColorConstant.COLOR_UNREQUIRED); } this.m_textJobunitId.setBackground(RequiredFieldColorConstant.COLOR_UNREQUIRED); this.m_textJobId.setBackground(RequiredFieldColorConstant.COLOR_UNREQUIRED); } } /** * ?ID?<BR> * @return ?ID */ public String getReferJobUnitId() { return m_referJobUnitId; } /** * ?ID?<BR> * @param referJobUnitId ?ID */ public void setReferJobUnitId(String referJobUnitId) { this.m_referJobUnitId = referJobUnitId; } /** * ?ID?<BR> * @return ?ID */ public String getReferJobId() { return m_referJobId; } /** * ?ID?<BR> * @param referJobId ?ID */ public void setReferJobId(String referJobId) { this.m_referJobId = referJobId; } /** * ??<BR> * @return (??????) */ public int getReferJobType() { return m_referJobType; } /** * ??<BR> * @param referJobType (??????) */ public void setReferJobType(int referJobType) { m_referJobType = referJobType; } /** * ???<BR> * @return ?? */ public Integer getReferJobSelectType() { return m_selectType; } /** * ???<BR> * @param selectType ?? */ public void setReferJobSelectType(Integer selectType) { m_selectType = selectType; } /** * ?<BR> * @param jobTreeItem */ public void setJobTreeItem(JobTreeItem jobTreeItem) { m_jobTreeItem = jobTreeItem; } /** * ??<BR> * * @param ?? */ public void setJobTreeComposite(JobTreeComposite composite) { m_jobTreeComposite = composite; } /** * ???????? * * @see com.clustercontrol.jobmanagement.bean.JobFileInfo */ public void reflectReferInfo() { // if (m_selectType != null && m_selectType == 1) { this.m_selectFromJobTreeRadio.setSelection(false); this.m_selectFromRegisteredModuleRadio.setSelection(true); } else { this.m_selectFromJobTreeRadio.setSelection(true); this.m_selectFromRegisteredModuleRadio.setSelection(false); } //????? if (m_jobTreeItem != null) { registeredJobList = getRegisteredModule(m_jobTreeItem); if (registeredJobList != null && !registeredJobList.isEmpty()) { for (JobInfo info : registeredJobList) { //?ID(?????) this.m_ComboRegisteredModuleCombo.add(info.getName() + "(" + info.getId() + ")"); } } } //????? if (m_selectFromJobTreeRadio.getSelection()) { if (m_referJobUnitId != null && m_referJobUnitId.length() > 0) { m_textJobunitId.setText(m_referJobUnitId); } if (m_referJobId != null && m_referJobId.length() > 0) { m_textJobId.setText(m_referJobId); } //?????? } else if (m_selectFromRegisteredModuleRadio.getSelection()) { if (m_referJobId != null && m_referJobId.length() > 0 && registeredJobList != null) { //??ID for (int i = 0; i < registeredJobList.size(); i++) { if (m_referJobId.equals(registeredJobList.get(i).getId())) { this.m_ComboRegisteredModuleCombo.select(i); } } } } update(); } /** * ??????? * * @return ?? * * @see com.clustercontrol.jobmanagement.bean.JobFileInfo */ public ValidateResult createReferInfo() { ValidateResult result = null; //????? if (m_selectFromJobTreeRadio.getSelection()) { // ?jobId if (m_textJobId.getText() != null && !"".equals(m_textJobId.getText().trim())) { this.setReferJobId(m_textJobId.getText()); } else { result = new ValidateResult(); result.setValid(false); result.setID(Messages.getString("message.hinemos.1")); result.setMessage(Messages.getString("message.job.100")); return result; } // ?jobunitId if (m_textJobunitId.getText() != null && !"".equals(m_textJobunitId.getText().trim())) { this.setReferJobUnitId(m_textJobunitId.getText()); } else { result = new ValidateResult(); result.setValid(false); result.setID(Messages.getString("message.hinemos.1")); result.setMessage(Messages.getString("message.job.99")); return result; } } //?????? else if (m_selectFromRegisteredModuleRadio.getSelection()) { if (m_ComboRegisteredModuleCombo.getText() != null && !"".equals(m_ComboRegisteredModuleCombo.getText().trim())) { JobInfo info = registeredJobList.get(m_ComboRegisteredModuleCombo.getSelectionIndex()); this.setReferJobId(info.getId()); this.setReferJobUnitId(info.getJobunitId()); } else { result = new ValidateResult(); result.setValid(false); result.setID(Messages.getString("message.hinemos.1")); result.setMessage(Messages.getString("message.job.100")); return result; } } return null; } public void setOwnerRoleId(String ownerRoleId) { this.m_ownerRoleId = ownerRoleId; this.m_textJobunitId.setText(""); this.m_textJobId.setText(""); this.m_referJobUnitId = null; this.m_referJobId = null; this.m_ComboRegisteredModuleCombo = null; } /** * ?????? */ @Override public void setEnabled(boolean enabled) { m_textJobunitId.setEditable(false); m_textJobId.setEditable(false); m_selectFromJobTreeRadio.setEnabled(enabled); m_selectFromRegisteredModuleRadio.setEnabled(enabled); if (m_selectFromJobTreeRadio.getSelection()) { m_buttonRefer.setEnabled(enabled); } else if (m_selectFromRegisteredModuleRadio.getSelection()) { m_ComboRegisteredModuleCombo.setEnabled(enabled); } } /** * ?? * * @param JobTreeItem * @return */ private List<JobInfo> getRegisteredModule(JobTreeItem item) { List<JobInfo> jobList = new ArrayList<JobInfo>(); //????JobTreeItem?? JobTreeItem tree = m_jobTreeComposite.getJobTreeOneUnit(item); //??JobTree????? JobUtil.getRegisteredJob(tree, jobList); return jobList; } }