/*
* Copyright (C) Yutaka Matsuno 2010-2012 All rights reserved.
*/
package net.dependableos.dcase.diagram.editor.command;
import net.dependableos.dcase.diagram.common.util.Menus;
import net.dependableos.dcase.diagram.editor.common.util.DcaseEditorUtil;
import net.dependableos.dcase.diagram.part.DcaseDiagramEditor;
import org.eclipse.core.resources.IFile;
import org.eclipse.jface.action.ContributionItem;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
/**
* A ContributionItem that provides menus for D-Case compare operations.
*/
public class DcaseCompareMenuContributionItem extends ContributionItem {
/**
* Fills the parent menu with items those provide method for file operations.
*
* @param menu the parent menu.
* @param index the index where the controls are inserted, or -1 to insert at the end.
*/
@Override
public void fill(Menu menu, int index) {
// adds "Compare To..." menu item.
MenuItem compareFileItem = new MenuItem(menu, SWT.PUSH);
compareFileItem.setText(Menus.DcaseFileMenuContributionItem_2);
// adds "Switch Source and Target" menu item.
MenuItem switchSTFileItem = new MenuItem(menu, SWT.PUSH);
switchSTFileItem.setText(Menus.DcaseFileMenuContributionItem_3);
// Sets menu enable or disable.
DcaseDiagramEditor currentDcaseEditor = DcaseEditorUtil
.getCurrentDcaseEditor();
if (currentDcaseEditor == null) {
compareFileItem.setEnabled(false);
switchSTFileItem.setEnabled(false);
} else {
compareFileItem
.addSelectionListener(new CompareDcaseFileSelectionAdapter());
IFile compareTargetFile = currentDcaseEditor.getCompareTargetFile();
if (compareTargetFile != null) {
switchSTFileItem
.addSelectionListener(new SwitchSourceAndTargetSelectionAdapter(
compareTargetFile));
} else {
switchSTFileItem.setEnabled(false);
}
}
}
/**
* {@inheritDoc}
*/
@Override
public boolean isDynamic() {
return true;
}
}