Java tutorial
/** * Copyright (c) 2015 SK holdings Co., Ltd. All rights reserved. * This software is the confidential and proprietary information of SK holdings. * You shall not disclose such confidential information and shall use it only in * accordance with the terms of the license agreement you entered into with SK holdings. * (http://www.eclipse.org/legal/epl-v10.html) */ package nexcore.alm.common.ui.dialog; import nexcore.alm.common.ui.Activator; import nexcore.alm.common.ui.constant.ColorConstant; import nexcore.alm.common.ui.constant.ImageConstant; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.swt.SWT; import org.eclipse.swt.events.FocusEvent; import org.eclipse.swt.events.FocusListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; import org.eclipse.ui.dialogs.ContainerCheckedTreeViewer; import org.eclipse.ui.dialogs.SelectionDialog; import org.eclipse.ui.forms.widgets.ExpandableComposite; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.Section; /** * <ul> * <li> : nexcore.tool.uml.ui.project</li> * <li> : nexcore.tool.uml.ui.project.explorer.dialog</li> * <li> : ContentsManagementDialog</li> * <li>? : 2011. 11. 9.</li> * <li>? : nspark</li> * </ul> */ public abstract class ContentsManagementDialog extends SelectionDialog { /** ? ? */ private static final int DIALOG_DEFAULT_WIDTH = 950; /** ? ? */ private static final int DIALOG_DEFAULT_HEIGHT = 700; /** ? */ protected static final int TABLE_WIDTH = 300; /** */ protected Section sourceSection; /** */ protected Section targetSection; /** ? ? */ protected ContainerCheckedTreeViewer sourceCheckTreeViewer; /** ? ? */ protected ContainerCheckedTreeViewer targetCheckTreeViewer; /** ? ? ? */ protected ToolBar sourceItemToolBar; /** ? ? ? */ protected ToolBar targetItemToolBar; /** ? ? ? */ protected Text filterText; /** ? ? ? */ protected Text rightFilterText; /** '>' */ protected Button addToRepositoryButton; /** '<' */ // protected Button addToLocalButton; /** toolkit */ protected FormToolkit toolkit; /** treeFilter */ protected ToolItem treeFilter; /** * ?? * @param parentShell */ protected ContentsManagementDialog(Shell parentShell) { super(parentShell); setTitle(Messages.ContentsManagementDialog_MANAGEMENT_REPOSITORY_CONTENTS); } /** * ? ? * * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite) */ @Override protected Control createDialogArea(Composite parent) { Composite container = (Composite) super.createDialogArea(parent); container.setBackground(ColorConstant.WHITE); container.setLayoutData(new GridData(GridData.FILL_BOTH)); GridLayout gl = new GridLayout(); gl.verticalSpacing = 5; gl.marginWidth = 5; gl.marginHeight = 5; gl.horizontalSpacing = 0; container.setLayout(gl); Composite treeComposite = new Composite(container, SWT.NONE); treeComposite.setBackground(ColorConstant.WHITE); GridData treeGD = new GridData(GridData.FILL_BOTH); treeComposite.setLayoutData(treeGD); GridLayout treeGL = new GridLayout(3, false); treeComposite.setLayout(treeGL); // sourceSection = getFormToolkit().createSection(treeComposite, ExpandableComposite.TITLE_BAR); GridData data = new GridData(GridData.FILL_BOTH); data.verticalSpan = 2; data.widthHint = TABLE_WIDTH; sourceSection.setLayoutData(data); GridLayout sectionLayout = new GridLayout(1, false); sourceSection.setLayout(sectionLayout); sourceSection.setText(Messages.ContentsManagementDialog_LOCAL_CONTENTS);//UMLMessage.LABEL_LOCAL_CONTENS); // Composite filterComposite = new Composite(sourceSection, SWT.NONE); GridLayout layout = new GridLayout(1, false); data = new GridData(GridData.FILL_BOTH); filterComposite.setLayout(layout); filterComposite.setLayoutData(data); filterComposite.setBackground(ColorConstant.WHITE); // ? filterText = new Text(filterComposite, SWT.BORDER); filterText.setForeground(filterText.getDisplay().getSystemColor(SWT.COLOR_GRAY)); filterText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); filterText.addFocusListener(new FocusListener() { @Override public void focusLost(FocusEvent e) { filterText.setForeground(filterText.getDisplay().getSystemColor(SWT.COLOR_GRAY)); } @Override public void focusGained(FocusEvent e) { filterText.setForeground(filterText.getDisplay().getSystemColor(SWT.COLOR_BLACK)); } }); // sourceCheckTreeViewer = new ContainerCheckedTreeViewer(filterComposite, SWT.BORDER | SWT.CHECK | SWT.H_SCROLL | SWT.V_SCROLL | SWT.HIDE_SELECTION); data = new GridData(GridData.FILL_BOTH); data.widthHint = TABLE_WIDTH; data.verticalSpan = 2; sourceCheckTreeViewer.getTree().setLayoutData(data); Composite buttonComposite = new Composite(treeComposite, SWT.NONE); buttonComposite.setBackground(ColorConstant.WHITE); buttonComposite.setLayout(new GridLayout()); buttonComposite.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, true)); // '>' addToRepositoryButton = new Button(buttonComposite, SWT.NONE); addToRepositoryButton.setImage(Activator.getDefault().getImage(ImageConstant.NEW_ARROW_ADD)); new Label(buttonComposite, SWT.NONE); // '<' // addToLocalButton = new Button(buttonComposite, SWT.NONE); // addToLocalButton.setImage(Activator.getDefault().getImage(ImageConstant.ARROW_LEFT)); // targetSection = getFormToolkit().createSection(treeComposite, ExpandableComposite.TITLE_BAR); data = new GridData(GridData.FILL_BOTH); data.verticalSpan = 2; targetSection.setLayoutData(data); sectionLayout = new GridLayout(1, true); targetSection.setLayout(sectionLayout); targetSection.setText(Messages.ContentsManagementDialog_REPOSITORY_CONTENTS);//UMLMessage.LABEL_NCP_METACONTENTS); // Composite rightFilterComposite = new Composite(targetSection, SWT.NONE); layout = new GridLayout(1, false); data = new GridData(GridData.FILL_BOTH); rightFilterComposite.setLayout(layout); rightFilterComposite.setLayoutData(data); rightFilterComposite.setBackground(ColorConstant.WHITE); rightFilterText = new Text(rightFilterComposite, SWT.BORDER); rightFilterText.setForeground(filterText.getDisplay().getSystemColor(SWT.COLOR_GRAY)); rightFilterText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); rightFilterText.addFocusListener(new FocusListener() { @Override public void focusLost(FocusEvent e) { rightFilterText.setForeground(rightFilterText.getDisplay().getSystemColor(SWT.COLOR_GRAY)); } @Override public void focusGained(FocusEvent e) { rightFilterText.setForeground(rightFilterText.getDisplay().getSystemColor(SWT.COLOR_BLACK)); } }); // targetCheckTreeViewer = new ContainerCheckedTreeViewer(rightFilterComposite, SWT.BORDER | SWT.CHECK | SWT.H_SCROLL | SWT.V_SCROLL | SWT.HIDE_SELECTION); data = new GridData(GridData.FILL_BOTH); data.widthHint = TABLE_WIDTH; data.verticalSpan = 2; targetCheckTreeViewer.getTree().setLayoutData(data); // sourceSection.setClient(filterComposite); targetSection.setClient(rightFilterComposite); // addSourceItemToolBar(sourceSection); addTargetItemToolBar(targetSection); addSelectionChangedListener(); //========== Composite colorLabelComposite = new Composite(parent, SWT.NONE); GridLayout gridLayout = new GridLayout(2, false); gridLayout.horizontalSpacing = 10; colorLabelComposite.setLayout(gridLayout); colorLabelComposite.setLayoutData(new GridData(SWT.FILL, SWT.BOTTOM, true, false, 3, 1)); Label colorLabel = new Label(colorLabelComposite, SWT.BOLD); colorLabel.setText(" "); //$NON-NLS-1$ colorLabel.setBackground(ColorConstant.WHITE); Label explainLabel = new Label(colorLabelComposite, SWT.BOLD); explainLabel.setText(Messages.ContentsManagementDialog_COMPARE_SAME); colorLabel = new Label(colorLabelComposite, SWT.BOLD); colorLabel.setText(" "); //$NON-NLS-1$ colorLabel.setBackground(ColorConstant.RED); explainLabel = new Label(colorLabelComposite, SWT.BOLD); explainLabel.setText(Messages.ContentsManagementDialog_COMPARE_DIFF); colorLabel = new Label(colorLabelComposite, SWT.BOLD); colorLabel.setText(" "); //$NON-NLS-1$ colorLabel.setBackground(ColorConstant.GREEN); explainLabel = new Label(colorLabelComposite, SWT.BOLD); explainLabel.setText(Messages.ContentsManagementDialog_COMPARE_ONESIDE); initialization(); return container; } public void addSelectionChangedListener() { sourceCheckTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { sourceCheckTreeViewerSelectionChanged(event); } }); targetCheckTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { targetCheckTreeViewerSelectionChanged(event); } }); } public void sourceCheckTreeViewerSelectionChanged(SelectionChangedEvent event) { // sourceCheckTreeViewer ? selectionChanged } public void targetCheckTreeViewerSelectionChanged(SelectionChangedEvent event) { // targetCheckTreeViewer ? selectionChanged } /** * ? ? ? . * * 1. ? ???, ???, , ... * 2. ? setInput . * * 3. ? . * 4. '>' , '<' , 'Compare', '' * * * void */ protected abstract void initialization(); /** * ? . * void */ protected abstract void deleteRepositoryContents(); // /** // * ? ? ?. // * void // */ // protected abstract void compare(); /** * * void */ protected abstract void treeFilter(); /** * * * @param section void */ public void addSourceItemToolBar(Section section) { sourceItemToolBar = new ToolBar(section, SWT.FLAT | SWT.HORIZONTAL); // '+' <- expandAll // ToolItem expandAll = new ToolItem(sourceItemToolBar, SWT.PUSH); // expandAll.setToolTipText("Expand All");//UMLMessage.LABEL_EXPAND_ALL);//$NON-NLS-1$ // expandAll.setText("[+]"); // expandAll.addSelectionListener(new SelectionAdapter() { // @Override // public void widgetSelected(SelectionEvent e) { // sourceCheckTreeViewer.expandAll(); // } // }); // '-' <- collapseAll ToolItem collapseAll = new ToolItem(sourceItemToolBar, SWT.PUSH); collapseAll.setToolTipText(Messages.ContentsManagementDialog_CALLAPSE_ALL);//UMLMessage.LABEL_CALLAPSE_ALL); collapseAll.setImage(Activator.getDefault().getImage(ImageConstant.NEW_COLLAPSE_ALL)); collapseAll.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { sourceCheckTreeViewer.collapseAll(); } }); // '?' // ToolItem checkItem = new ToolItem(sourceItemToolBar, SWT.PUSH); // checkItem.setToolTipText(Messages.ContentsManagementDialog_CHECK_ALL);//UMLMessage.LABEL_CHECK_ALL); // checkItem.setImage(Activator.getDefault().getImage(ImageConstant.NEW_CHECK_ALL)); // checkItem.addSelectionListener(new SelectionAdapter() { // @Override // public void widgetSelected(SelectionEvent e) { // sourceCheckTreeViewer.setAllChecked(true); // } // }); // // '?' // ToolItem unCheckItem = new ToolItem(sourceItemToolBar, SWT.PUSH); // unCheckItem.setToolTipText(Messages.ContentsManagementDialog_UNCHECK_ALL);//UMLMessage.LABEL_UNCHECK_ALL); // unCheckItem.setImage(Activator.getDefault().getImage(ImageConstant.NEW_UNCHECK_ALL)); // unCheckItem.addSelectionListener(new SelectionAdapter() { // @Override // public void widgetSelected(SelectionEvent e) { // sourceCheckTreeViewer.setAllChecked(false); // } // }); ToolItem toggleCheckItem = new ToolItem(sourceItemToolBar, SWT.CHECK); toggleCheckItem.setToolTipText(Messages.ContentsManagementDialog_CHECK_ALL);//UMLMessage.LABEL_UNCHECK_ALL); toggleCheckItem.setImage(Activator.getDefault().getImage(ImageConstant.NEW_CHECK_ALL)); toggleCheckItem.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { sourceCheckTreeViewer.setAllChecked(((ToolItem) e.widget).getSelection()); if (((ToolItem) e.widget).getSelection()) { ((ToolItem) e.widget).setToolTipText(Messages.ContentsManagementDialog_UNCHECK_ALL);//UMLMessage.LABEL_UNCHECK_ALL); ((ToolItem) e.widget).setImage(Activator.getDefault().getImage(ImageConstant.NEW_UNCHECK_ALL)); } else { ((ToolItem) e.widget).setToolTipText(Messages.ContentsManagementDialog_CHECK_ALL);//UMLMessage.LABEL_UNCHECK_ALL); ((ToolItem) e.widget).setImage(Activator.getDefault().getImage(ImageConstant.NEW_CHECK_ALL)); } } }); // 'Compare' // ToolItem compare = new ToolItem(sourceItemToolBar, SWT.CHECK); // compare.setToolTipText("Compare"); // compare.setText("Compare"); // compare.addSelectionListener(new SelectionAdapter() { // @Override // public void widgetSelected(SelectionEvent e) { // compare(); // } // }); // 'TreeFilter' treeFilter = new ToolItem(sourceItemToolBar, SWT.CHECK); treeFilter.setToolTipText(Messages.ContentsManagementDialog_VIEW_ONLY_DIFFRENT); treeFilter.setImage(Activator.getDefault().getImage(ImageConstant.NEW_VIEW_ONLY_DIFFRENT)); treeFilter.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { treeFilter(); } }); section.setTextClient(sourceItemToolBar); } /** * * * @param section void */ public void addTargetItemToolBar(Section section) { targetItemToolBar = new ToolBar(section, SWT.FLAT | SWT.HORIZONTAL); // '+' <- expandAll // ToolItem expandAll = new ToolItem(targetItemToolBar, SWT.PUSH); // expandAll.setToolTipText("Expand All"); // expandAll.setText("[+]"); // expandAll.addSelectionListener(new SelectionAdapter() { // @Override // public void widgetSelected(SelectionEvent e) { // targetCheckTreeViewer.expandAll(); // } // }); // '-' <- collapseAll ToolItem collapseAll = new ToolItem(targetItemToolBar, SWT.PUSH); collapseAll.setToolTipText(Messages.ContentsManagementDialog_CALLAPSE_ALL); collapseAll.setImage(Activator.getDefault().getImage(ImageConstant.NEW_COLLAPSE_ALL)); collapseAll.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { targetCheckTreeViewer.collapseAll(); } }); // '?' // ToolItem checkItem = new ToolItem(targetItemToolBar, SWT.PUSH); // checkItem.setToolTipText(Messages.ContentsManagementDialog_CHECK_ALL); // checkItem.setImage(Activator.getDefault().getImage(ImageConstant.NEW_CHECK_ALL)); // checkItem.addSelectionListener(new SelectionAdapter() { // @Override // public void widgetSelected(SelectionEvent e) { // targetCheckTreeViewer.setAllChecked(true); // } // }); // // '?' // ToolItem unCheckItem = new ToolItem(targetItemToolBar, SWT.PUSH); // unCheckItem.setToolTipText(Messages.ContentsManagementDialog_UNCHECK_ALL); // unCheckItem.setImage(Activator.getDefault().getImage(ImageConstant.NEW_UNCHECK_ALL)); // unCheckItem.addSelectionListener(new SelectionAdapter() { // @Override // public void widgetSelected(SelectionEvent e) { // targetCheckTreeViewer.setAllChecked(false); // } // }); ToolItem toggleCheckItem = new ToolItem(targetItemToolBar, SWT.CHECK); toggleCheckItem.setToolTipText(Messages.ContentsManagementDialog_CHECK_ALL);//UMLMessage.LABEL_UNCHECK_ALL); toggleCheckItem.setImage(Activator.getDefault().getImage(ImageConstant.NEW_CHECK_ALL)); toggleCheckItem.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { targetCheckTreeViewer.setAllChecked(((ToolItem) e.widget).getSelection()); if (((ToolItem) e.widget).getSelection()) { ((ToolItem) e.widget).setToolTipText(Messages.ContentsManagementDialog_UNCHECK_ALL);//UMLMessage.LABEL_UNCHECK_ALL); ((ToolItem) e.widget).setImage(Activator.getDefault().getImage(ImageConstant.NEW_UNCHECK_ALL)); } else { ((ToolItem) e.widget).setToolTipText(Messages.ContentsManagementDialog_CHECK_ALL);//UMLMessage.LABEL_UNCHECK_ALL); ((ToolItem) e.widget).setImage(Activator.getDefault().getImage(ImageConstant.NEW_CHECK_ALL)); } } }); // '' ToolItem deleteItem = new ToolItem(targetItemToolBar, SWT.PUSH); deleteItem.setToolTipText(Messages.ContentsManagementDialog_DELETE);//UMLMessage.LABEL_DELETE_METACONTENT); deleteItem.setImage(Activator.getDefault().getImage(ImageConstant.NEW_DELETE)); deleteItem.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { // ? . deleteRepositoryContents(); } }); section.setTextClient(targetItemToolBar); } /** * ? ? ? 'Close' ?. * * @see org.eclipse.ui.dialogs.SelectionDialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite) */ @Override protected void createButtonsForButtonBar(Composite parent) { createButton(parent, IDialogConstants.OK_ID, IDialogConstants.CLOSE_LABEL, false); } /** * ? ? ? * * @see org.eclipse.jface.dialogs.Dialog#getInitialSize() */ @Override protected Point getInitialSize() { getShell().setMinimumSize(DIALOG_DEFAULT_WIDTH, DIALOG_DEFAULT_HEIGHT); return new Point(DIALOG_DEFAULT_WIDTH, DIALOG_DEFAULT_HEIGHT); } /** * @see org.eclipse.jface.dialogs.TrayDialog#createHelpControl(org.eclipse.swt.widgets.Composite) */ @Override protected Control createHelpControl(Composite parent) { // return super.createHelpControl(parent); return parent; } /** * getFormToolkit * * @return FormToolkit */ private FormToolkit getFormToolkit() { toolkit = new FormToolkit(getShell().getDisplay()); return toolkit; } }