Commit 1849246a authored by Andrey Filippov's avatar Andrey Filippov

Made actions in context and toolbar menus updated after parameters were

updated in dialogs. Left some conditioned debug output behind.
parent bdbfb6b6
......@@ -30,11 +30,13 @@ import org.eclipse.swt.widgets.Shell;
import com.elphel.vdt.Txt;
//import com.elphel.vdt.VDTPlugin;
import com.elphel.vdt.veditor.VerilogPlugin;
import com.elphel.vdt.veditor.preference.PreferenceStrings;
import com.elphel.vdt.core.options.OptionsCore;
import com.elphel.vdt.core.tools.contexts.Context;
import com.elphel.vdt.core.tools.contexts.PackageContext;
import com.elphel.vdt.core.tools.params.ToolException;
import com.elphel.vdt.ui.MessageUI;
import com.elphel.vdt.ui.views.DesignFlowView;
public class ContextOptionsDialog extends Dialog {
......@@ -44,7 +46,7 @@ public class ContextOptionsDialog extends Dialog {
private IPreferenceStore store;
private OptionsBlock optionsBlock;
private String location;
// private DesignFlowView designFlowView; // Andrey
public ContextOptionsDialog(Shell parent, Context context, IProject project) {
this( parent
, context
......@@ -70,6 +72,7 @@ public class ContextOptionsDialog extends Dialog {
this.store = store;
OptionsCore.doLoadContextOptions(context, store);
setShellStyle(getShellStyle() | SWT.RESIZE);
// this.designFlowView=null; // Andrey
}
protected void okPressed() {
......@@ -83,9 +86,16 @@ public class ContextOptionsDialog extends Dialog {
, new String[] {context.getLabel(), e.getMessage()})
, e );
}
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER))
System.out.println("ContexOptionsDialog.okPressed()");
// Need to update Design menu as it uses calculated parameters
super.okPressed();
// if (this.designFlowView!=null) this.designFlowView.updateLaunchAction();
}
// public void setDesignFlowView(DesignFlowView designFlowView){
// this.designFlowView=designFlowView;
// };
protected Control createDialogArea(Composite parent) {
GridLayout layout = new GridLayout(1, false);
layout.marginHeight = 5;
......
......@@ -29,6 +29,7 @@ import org.eclipse.ui.IWorkbenchPreferencePage;
import com.elphel.vdt.Txt;
//import com.elphel.vdt.VDTPlugin;
import com.elphel.vdt.veditor.VerilogPlugin;
import com.elphel.vdt.veditor.preference.PreferenceStrings;
import com.elphel.vdt.core.options.OptionsCore;
import com.elphel.vdt.core.tools.contexts.Context;
import com.elphel.vdt.core.tools.params.ToolException;
......@@ -85,6 +86,8 @@ public class ContextOptionsPage extends PreferencePage
, new String[] {context.getLabel(), e.getMessage()})
, e );
}
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER))
System.out.println("ContexOptionsPage.performOK()");
return super.performOk();
}
......
......@@ -33,6 +33,8 @@ import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.preferences.ScopedPreferenceStore;
import com.elphel.vdt.VDT;
import com.elphel.vdt.veditor.VerilogPlugin;
import com.elphel.vdt.veditor.preference.PreferenceStrings;
/**
* Abstract options configuration block providing a general implementation
......@@ -114,6 +116,8 @@ public class OptionsBlock {
// Nothing do do, we don't need to bother the user
}
}
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER))
System.out.println("OptionsBlock.performOK()");
return ok;
} // performOk()
......
......@@ -45,11 +45,22 @@ abstract public class ContextsAction extends Action
protected String title;
protected Context lastSelected;
protected DesignFlowView designFlowView; // Andrey
public ContextsAction(String title) {
this.title = title;
setMenuCreator(this);
setEnabled(false);
designFlowView=null;
}
public void setDesignFlowView(DesignFlowView designFlowView){
this.designFlowView=designFlowView;
}
public void updateActions(){
if (this.designFlowView!=null) this.designFlowView.updateLaunchAction();
}
public void setContexts(List<Context> contexts) {
......
......@@ -278,9 +278,16 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
}
private void makeActions() {
final DesignFlowView fDesignFlowView=this;
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER)) {
System.out.println("makeActions()");
}
showInstallationPropertiesAction = new Action() {
public void run() {
openInstallationPropertiesDialog();
if (openInstallationPropertiesDialog()==Window.OK){
System.out.println("openInstallationPropertiesDialog()-> OK");
fDesignFlowView.updateLaunchAction();
};
}
};
showInstallationPropertiesAction.setText("Installation Parameters");
......@@ -298,15 +305,20 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
clearInstallationPropertiesAction.setEnabled(ToolsCore.getInstallationContext() != null);
showPackagePropertiesToolbarAction = new GlobalContextsAction("Package Parameters");
showPackagePropertiesToolbarAction = new GlobalContextsAction("Package Parameters",fDesignFlowView);
showPackagePropertiesToolbarAction.setText("Package Parameters");
showPackagePropertiesToolbarAction.setToolTipText("Set package parameters for this tool");
showPackagePropertiesToolbarAction.setImageDescriptor(VDTPluginImages.DESC_PACKAGE_PROPERTIES);
showPackagePropertiesAction = new Action() {
public void run() {
GlobalContextsAction.openDialog( "Package Parameters"
, selectedItem.getPackageContext() );
if (GlobalContextsAction.openDialog( "Package Parameters"
, selectedItem.getPackageContext() )==Window.OK){
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER)) {
System.out.println("GlobalContextsAction.openDialog()-> OK");
}
fDesignFlowView.updateLaunchAction();
};
}
};
showPackagePropertiesAction.setText("Package Parameters");
......@@ -318,16 +330,19 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
clearPackagePropertiesAction.setImageDescriptor(VDTPluginImages.DESC_PACKAGE_PROPERTIES);
showProjectPropertiesToolbarAction = new LocalContextsAction("Project Parameters");
showProjectPropertiesToolbarAction = new LocalContextsAction("Project Parameters",fDesignFlowView);
showProjectPropertiesToolbarAction.setText("Project Parameters");
showProjectPropertiesToolbarAction.setToolTipText("Set project parameters (toolbar)");
showProjectPropertiesToolbarAction.setImageDescriptor(VDTPluginImages.DESC_PROJECT_PROPERTIES);
showProjectAction = new Action() {
public void run() {
LocalContextsAction.openDialog( "Project Parameters"
if (LocalContextsAction.openDialog( "Project Parameters"
, selectedItem.getProjectContext()
, selectedResource.getProject() );
, selectedResource.getProject() )==Window.OK){
System.out.println("LocalContextsAction.openDialog()-> OK");
fDesignFlowView.updateLaunchAction();
};
}
};
showProjectAction.setText("Project Parameters");
......@@ -341,7 +356,10 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
showPropertiesAction = new Action() {
public void run() {
openToolPropertiesDialog(selectedItem);
if (openToolPropertiesDialog(selectedItem)==Window.OK){
System.out.println("openToolPropertiesDialog()-> OK");
fDesignFlowView.updateLaunchAction();
};
// ConsoleView.getDefault().println("Action 1 executed", ConsoleView.MSG_INFORMATION);
}
};
......@@ -368,7 +386,9 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
showLaunchConfigAction = new Action() {
public void run() {
try {
openToolLaunchDialog(selectedItem);
int result = openToolLaunchDialog(selectedItem);
System.out.println("Ran openToolLaunchDialog() ->"+result);
fDesignFlowView.updateLaunchAction();
} catch (CoreException e) {
MessageUI.error(Txt.s("Action.OpenLaunchConfigDialog.Error",
new String[] {selectedItem.getLabel(), e.getMessage()}),
......@@ -470,8 +490,10 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
}
updateLaunchAction();
} // selectionChanged()
private void updateLaunchAction() {
// Made it public to call from ContexOptionsDialog.okPressed() as launch actions might change
// private void updateLaunchAction() {
public void updateLaunchAction() {
// System.out.println("DesignFlowView.updateLaunchAction()");
IProject project = selectedResource == null
......@@ -519,7 +541,8 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
for (int i=0;i<runFor.length;i++){
// String name=runFor[i].getResource();
String name=SelectedResourceManager.getDefault().tryRelativePath(runFor[i].getResource());
String shortName=name;
// String shortName=name;
String shortName=runFor[i].getResource(); // as entered
String fullPath=name;
enabled=(selectedItem != null);
if (enabled && runFor[i].getCheckExistence()){
......@@ -571,8 +594,16 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
}
};
launchActions[i].setToolTipText(i+": "+runFor[i].getLabel()+" "+shortName);
launchActions[i].setText(runFor[i].getLabel()+" "+shortName);
if (shortName.indexOf("@")>=0){
launchActions[i].setText(runFor[i].getLabel()+" "+shortName+"@");
} else {
launchActions[i].setText(runFor[i].getLabel()+" "+shortName);
}
launchActions[i].setEnabled(enabled);
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER)) {
System.out.println("shortName="+shortName);
System.out.println("launchActions[i].getText()="+launchActions[i].getText());
}
String actionIconKey=tool.getImageKey(i);
if ((actionIconKey!=null) && (VDTPluginImages.getImageDescriptor(actionIconKey)!=null))
launchActions[i].setImageDescriptor(VDTPluginImages.getImageDescriptor(actionIconKey));
......@@ -655,17 +686,18 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
}
} // launchTool()
private void openInstallationPropertiesDialog() {
private int openInstallationPropertiesDialog() {
Shell shell = VerilogPlugin.getActiveWorkbenchShell();
SetupOptionsDialog dialog = new SetupOptionsDialog(shell);
// ContextOptionsDialog dialog = new ContextOptionsDialog(shell, ToolsCore.getContextManager().getInstallationContext());
dialog.setTitle("Instalation Parameters");
dialog.create();
dialog.open();
return dialog.open();
} // openInstallationPropertiesDialog()
private void openToolPropertiesDialog(DesignMenuModel.Item item) {
private int openToolPropertiesDialog(DesignMenuModel.Item item) {
Shell shell = VerilogPlugin.getActiveWorkbenchShell();
Context context = item.getTool();
ContextOptionsDialog dialog = new ContextOptionsDialog( shell
......@@ -673,15 +705,17 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
, selectedResource.getProject() );
dialog.setTitle("Tool Parameters");
dialog.create();
dialog.open();
return dialog.open();
} // openToolPropertiesDialog()
private void openDesignMenuSelectionDialog(IProject project) {
private int openDesignMenuSelectionDialog(IProject project) {
Shell shell = VerilogPlugin.getActiveWorkbenchShell();
DesignMenuSelectionDialog dialog = new DesignMenuSelectionDialog( shell
, desigMenuName.getValue() );
dialog.create();
if (dialog.open() == Window.OK) {
int result=dialog.open();
if (result == Window.OK) {
System.out.println("openDesignMenuSelectionDialog()-> OK");
DesignMenu newDesignMenu = dialog.getSelectedDesignMenu();
String newDesignMenuName = newDesignMenu == null ? null
: newDesignMenu.getName();
......@@ -706,16 +740,19 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
OptionsCore.doStoreOption(desigMenuName, project);
doLoadDesignMenu(newDesignMenuName);
}
return result;
}
private void openToolLaunchDialog(DesignMenuModel.Item item) throws CoreException {
private int openToolLaunchDialog(DesignMenuModel.Item item) throws CoreException {
System.out.println("openToolLaunchDialog()");
Shell shell = VerilogPlugin.getActiveWorkbenchShell();
ILaunchConfiguration launchConfig = LaunchCore.createLaunchConfiguration( item.getTool()
, selectedResource.getProject()
, null );
IStructuredSelection selection = new StructuredSelection(launchConfig);
DebugUITools.openLaunchConfigurationDialogOnGroup( shell
return DebugUITools.openLaunchConfigurationDialogOnGroup( shell
, selection
, VDT.ID_VERILOG_TOOLS_LAUNCH_GROUP );
} // openToolLaunchDialog()
......
......@@ -17,10 +17,15 @@
*******************************************************************************/
package com.elphel.vdt.ui.views;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.widgets.Shell;
//import com.elphel.vdt.VDTPlugin;
import com.elphel.vdt.veditor.VerilogPlugin;
import com.elphel.vdt.veditor.preference.PreferenceStrings;
import com.elphel.vdt.core.tools.contexts.Context;
import com.elphel.vdt.ui.options.ContextOptionsDialog;
......@@ -32,26 +37,34 @@ import com.elphel.vdt.ui.options.ContextOptionsDialog;
*/
public class GlobalContextsAction extends ContextsAction {
public GlobalContextsAction(String title) {
public GlobalContextsAction(String title, DesignFlowView designFlowView) {
super(title);
super.setDesignFlowView(designFlowView);
}
protected ShowContextAction createContextAction(Context context) {
return new ShowGlobalContextAction(context);
}
public void run() {
if (lastSelected != null) {
openDialog(title, lastSelected);
// openDialog(title, lastSelected);
if (openDialog(title, lastSelected)== Window.OK){
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER)) {
System.out.println("GlobalContextsAction.run()");
}
super.updateActions();
}
}
}
public static void openDialog(String title, Context context) {
public static int openDialog(String title, Context context) {
Shell shell = VerilogPlugin.getActiveWorkbenchShell();
ContextOptionsDialog dialog = new ContextOptionsDialog(shell, context);
dialog.setTitle(title);
dialog.create();
dialog.open();
return dialog.open();
} // openDialog()
// ------------------------------------------------------------------------
......
......@@ -20,10 +20,12 @@ package com.elphel.vdt.ui.views;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.jface.window.Window;
import com.elphel.vdt.VDT;
//import com.elphel.vdt.VDTPlugin;
import com.elphel.vdt.veditor.VerilogPlugin;
import com.elphel.vdt.veditor.preference.PreferenceStrings;
import com.elphel.vdt.core.tools.contexts.Context;
import com.elphel.vdt.ui.options.ContextOptionsDialog;
......@@ -36,9 +38,10 @@ import com.elphel.vdt.ui.options.ContextOptionsDialog;
public class LocalContextsAction extends ContextsAction {
private IProject project;
public LocalContextsAction(String title) {
public LocalContextsAction(String title, DesignFlowView designFlowView) {
super(title);
setEnabled(false);
super.setDesignFlowView(designFlowView);
}
public void setProject(IProject project) {
......@@ -58,16 +61,26 @@ public class LocalContextsAction extends ContextsAction {
public void run() {
if (lastSelected != null) {
openDialog(title, lastSelected, project);
if (openDialog(title, lastSelected, project)== Window.OK){
System.out.println("LocalContextsAction.run()");
super.updateActions();
}
}
}
public static void openDialog(String title, Context context, IProject project) {
public static int openDialog(String title, Context context, IProject project) {
Shell shell = VerilogPlugin.getActiveWorkbenchShell();
ContextOptionsDialog dialog = new ContextOptionsDialog(shell, context, project);
dialog.setTitle(title);
dialog.create();
dialog.open();
int result=dialog.open();
// if (result == Window.OK){
// updateActions();
// }
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER)) {
System.out.println("LocalContextAction()->"+result);
}
return result;
} // openDialog()
......
......@@ -9,7 +9,8 @@
<action-menu>
<action label="Launch Vivado" resource="" icon="xilinx.png" />
<action label="Generate public key" resource="" icon="gnu.png" />
<action label="Setup connection to" resource="%RemoteUser@%RemoteHost" icon="gnu.png" />
<action label="Setup connection to" resource="%RemoteUser@%RemoteHost"
check-extension="false" check-existence="false" icon="gnu.png" />
</action-menu>
<!--
<parameter id="command" label="Command" default=""
......@@ -61,8 +62,8 @@
<if actionIndex="2">
<line name="SSHCopyID">
"%ShellSwitches"
"echo \"**********************************************\";"
"echo \"** **\";"
"echo \"*********************************************\";"
"echo \"** **\";"
"echo \"** This command requires you to be able **\";"
"echo \"** to login to the remote system and enter **\";"
"echo \"** a password once to post your public key **\";"
......@@ -86,7 +87,7 @@
"echo \"** terminal - just switch to it and **\";"
"echo \"** complete the setup. **\";"
"echo \"** **\";"
"echo \"**********************************************\";"
"echo \"*********************************************\";"
"ssh-copy-id %RemoteUser@%RemoteHost;"
</line>
</if>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment