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

Made actions in context and toolbar menus updated after parameters were

updated in dialogs. Left some conditioned debug output behind.
parent bdbfb6b6
Loading
Loading
Loading
Loading
+11 −1
Original line number Original line Diff line number Diff line
@@ -30,11 +30,13 @@ import org.eclipse.swt.widgets.Shell;
import com.elphel.vdt.Txt;
import com.elphel.vdt.Txt;
//import com.elphel.vdt.VDTPlugin;
//import com.elphel.vdt.VDTPlugin;
import com.elphel.vdt.veditor.VerilogPlugin;
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.options.OptionsCore;
import com.elphel.vdt.core.tools.contexts.Context;
import com.elphel.vdt.core.tools.contexts.Context;
import com.elphel.vdt.core.tools.contexts.PackageContext;
import com.elphel.vdt.core.tools.contexts.PackageContext;
import com.elphel.vdt.core.tools.params.ToolException;
import com.elphel.vdt.core.tools.params.ToolException;
import com.elphel.vdt.ui.MessageUI;
import com.elphel.vdt.ui.MessageUI;
import com.elphel.vdt.ui.views.DesignFlowView;


public class ContextOptionsDialog extends Dialog {
public class ContextOptionsDialog extends Dialog {


@@ -44,7 +46,7 @@ public class ContextOptionsDialog extends Dialog {
    private IPreferenceStore store; 
    private IPreferenceStore store; 
    private OptionsBlock optionsBlock;
    private OptionsBlock optionsBlock;
    private String location;  
    private String location;  
    
//    private DesignFlowView designFlowView; // Andrey
    public ContextOptionsDialog(Shell parent, Context context, IProject project) {
    public ContextOptionsDialog(Shell parent, Context context, IProject project) {
        this( parent
        this( parent
            , context
            , context
@@ -70,6 +72,7 @@ public class ContextOptionsDialog extends Dialog {
        this.store = store;
        this.store = store;
        OptionsCore.doLoadContextOptions(context, store);
        OptionsCore.doLoadContextOptions(context, store);
        setShellStyle(getShellStyle() | SWT.RESIZE);
        setShellStyle(getShellStyle() | SWT.RESIZE);
  //      this.designFlowView=null; // Andrey
    }
    }
    
    
    protected void okPressed() {
    protected void okPressed() {
@@ -83,9 +86,16 @@ public class ContextOptionsDialog extends Dialog {
                                 , new String[] {context.getLabel(), e.getMessage()})
                                 , new String[] {context.getLabel(), e.getMessage()})
                                 , e );
                                 , e );
        }
        }
        if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER))
        	System.out.println("ContexOptionsDialog.okPressed()");
        // Need to update Design menu as it uses calculated parameters
        super.okPressed();
        super.okPressed();
//        if (this.designFlowView!=null) this.designFlowView.updateLaunchAction();
    }
    }
    
    
//    public void setDesignFlowView(DesignFlowView designFlowView){
//    	this.designFlowView=designFlowView;
//    };
    protected Control createDialogArea(Composite parent) {
    protected Control createDialogArea(Composite parent) {
        GridLayout layout = new GridLayout(1, false);
        GridLayout layout = new GridLayout(1, false);
        layout.marginHeight = 5;
        layout.marginHeight = 5;
+3 −0
Original line number Original line Diff line number Diff line
@@ -29,6 +29,7 @@ import org.eclipse.ui.IWorkbenchPreferencePage;
import com.elphel.vdt.Txt;
import com.elphel.vdt.Txt;
//import com.elphel.vdt.VDTPlugin;
//import com.elphel.vdt.VDTPlugin;
import com.elphel.vdt.veditor.VerilogPlugin;
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.options.OptionsCore;
import com.elphel.vdt.core.tools.contexts.Context;
import com.elphel.vdt.core.tools.contexts.Context;
import com.elphel.vdt.core.tools.params.ToolException;
import com.elphel.vdt.core.tools.params.ToolException;
@@ -85,6 +86,8 @@ public class ContextOptionsPage extends PreferencePage
                                 , new String[] {context.getLabel(), e.getMessage()})
                                 , new String[] {context.getLabel(), e.getMessage()})
                                 , e );
                                 , e );
        }
        }
        if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER))
        	System.out.println("ContexOptionsPage.performOK()");
        return super.performOk();
        return super.performOk();
    }
    }
    
    
+4 −0
Original line number Original line Diff line number Diff line
@@ -33,6 +33,8 @@ import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.preferences.ScopedPreferenceStore;
import org.eclipse.ui.preferences.ScopedPreferenceStore;


import com.elphel.vdt.VDT;
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
 * 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
                  // Nothing do do, we don't need to bother the user
            }
            }
        }
        }
        if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER))
        	System.out.println("OptionsBlock.performOK()");
        return ok;
        return ok;
    } // performOk()
    } // performOk()
    
    
+11 −0
Original line number Original line Diff line number Diff line
@@ -45,11 +45,22 @@ abstract public class ContextsAction extends Action


    protected String title;
    protected String title;
    protected Context lastSelected;
    protected Context lastSelected;
    protected DesignFlowView designFlowView; // Andrey

    
    
    public ContextsAction(String title) {
    public ContextsAction(String title) {
        this.title = title;
        this.title = title;
        setMenuCreator(this);
        setMenuCreator(this);
        setEnabled(false);
        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) {
    public void setContexts(List<Context> contexts) {
+59 −22
Original line number Original line Diff line number Diff line
@@ -278,9 +278,16 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
    }
    }
    
    
    private void makeActions() {
    private void makeActions() {
    	final DesignFlowView fDesignFlowView=this;
		if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER)) {
			System.out.println("makeActions()");
		}
        showInstallationPropertiesAction = new Action() {
        showInstallationPropertiesAction = new Action() {
            public void run() {
            public void run() {
                openInstallationPropertiesDialog(); 
                if (openInstallationPropertiesDialog()==Window.OK){
                	System.out.println("openInstallationPropertiesDialog()-> OK");
                	fDesignFlowView.updateLaunchAction();
                }; 
            }
            }
        };
        };
        showInstallationPropertiesAction.setText("Installation Parameters");
        showInstallationPropertiesAction.setText("Installation Parameters");
@@ -298,15 +305,20 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
        clearInstallationPropertiesAction.setEnabled(ToolsCore.getInstallationContext() != null);
        clearInstallationPropertiesAction.setEnabled(ToolsCore.getInstallationContext() != null);
        
        
        
        
        showPackagePropertiesToolbarAction = new GlobalContextsAction("Package Parameters");
        showPackagePropertiesToolbarAction = new GlobalContextsAction("Package Parameters",fDesignFlowView);
        showPackagePropertiesToolbarAction.setText("Package Parameters");
        showPackagePropertiesToolbarAction.setText("Package Parameters");
        showPackagePropertiesToolbarAction.setToolTipText("Set package parameters for this tool");
        showPackagePropertiesToolbarAction.setToolTipText("Set package parameters for this tool");
        showPackagePropertiesToolbarAction.setImageDescriptor(VDTPluginImages.DESC_PACKAGE_PROPERTIES);
        showPackagePropertiesToolbarAction.setImageDescriptor(VDTPluginImages.DESC_PACKAGE_PROPERTIES);
        
        
        showPackagePropertiesAction = new Action() {
        showPackagePropertiesAction = new Action() {
            public void run() {
            public void run() {
                GlobalContextsAction.openDialog( "Package Parameters"
            	if (GlobalContextsAction.openDialog( "Package Parameters"
                                               , selectedItem.getPackageContext() );
                                               , selectedItem.getPackageContext() )==Window.OK){
            		if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER)) {
            			System.out.println("GlobalContextsAction.openDialog()-> OK");
            		}
                	fDesignFlowView.updateLaunchAction();
                }; 
            }
            }
        };
        };
        showPackagePropertiesAction.setText("Package Parameters");
        showPackagePropertiesAction.setText("Package Parameters");
@@ -318,16 +330,19 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
        clearPackagePropertiesAction.setImageDescriptor(VDTPluginImages.DESC_PACKAGE_PROPERTIES);
        clearPackagePropertiesAction.setImageDescriptor(VDTPluginImages.DESC_PACKAGE_PROPERTIES);


        
        
        showProjectPropertiesToolbarAction = new LocalContextsAction("Project Parameters");
        showProjectPropertiesToolbarAction = new LocalContextsAction("Project Parameters",fDesignFlowView);
        showProjectPropertiesToolbarAction.setText("Project Parameters");
        showProjectPropertiesToolbarAction.setText("Project Parameters");
        showProjectPropertiesToolbarAction.setToolTipText("Set project parameters (toolbar)");
        showProjectPropertiesToolbarAction.setToolTipText("Set project parameters (toolbar)");
        showProjectPropertiesToolbarAction.setImageDescriptor(VDTPluginImages.DESC_PROJECT_PROPERTIES);
        showProjectPropertiesToolbarAction.setImageDescriptor(VDTPluginImages.DESC_PROJECT_PROPERTIES);


        showProjectAction = new Action() {
        showProjectAction = new Action() {
            public void run() {
            public void run() {
                LocalContextsAction.openDialog( "Project Parameters"
            	if (LocalContextsAction.openDialog( "Project Parameters"
                                              , selectedItem.getProjectContext() 
                                              , selectedItem.getProjectContext() 
                                              , selectedResource.getProject() );
                                              , selectedResource.getProject() )==Window.OK){
                	System.out.println("LocalContextsAction.openDialog()-> OK");
                	fDesignFlowView.updateLaunchAction();
                }; 
            }
            }
        };
        };
        showProjectAction.setText("Project Parameters");
        showProjectAction.setText("Project Parameters");
@@ -341,7 +356,10 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
        
        
        showPropertiesAction = new Action() {
        showPropertiesAction = new Action() {
            public void run() {
            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);                
//              ConsoleView.getDefault().println("Action 1 executed", ConsoleView.MSG_INFORMATION);                
            }
            }
        };
        };
@@ -368,7 +386,9 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
        showLaunchConfigAction = new Action() {
        showLaunchConfigAction = new Action() {
            public void run() {
            public void run() {
                try {
                try {
                    openToolLaunchDialog(selectedItem); 
                    int result = openToolLaunchDialog(selectedItem);
                	System.out.println("Ran openToolLaunchDialog() ->"+result);
                	fDesignFlowView.updateLaunchAction();
                } catch (CoreException e) {
                } catch (CoreException e) {
                    MessageUI.error(Txt.s("Action.OpenLaunchConfigDialog.Error", 
                    MessageUI.error(Txt.s("Action.OpenLaunchConfigDialog.Error", 
                                          new String[] {selectedItem.getLabel(), e.getMessage()}),
                                          new String[] {selectedItem.getLabel(), e.getMessage()}),
@@ -470,8 +490,10 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
        }
        }
        updateLaunchAction();
        updateLaunchAction();
    } // selectionChanged()
    } // selectionChanged()
    // Made it public to call from ContexOptionsDialog.okPressed() as launch actions might change
//    private void updateLaunchAction() {
    public void updateLaunchAction() {


    private void updateLaunchAction() {
//    	System.out.println("DesignFlowView.updateLaunchAction()");
//    	System.out.println("DesignFlowView.updateLaunchAction()");


        IProject project = selectedResource == null 
        IProject project = selectedResource == null 
@@ -519,7 +541,8 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
        	for (int i=0;i<runFor.length;i++){
        	for (int i=0;i<runFor.length;i++){
//                String name=runFor[i].getResource();
//                String name=runFor[i].getResource();
                String name=SelectedResourceManager.getDefault().tryRelativePath(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;
                String fullPath=name;
                enabled=(selectedItem != null);
                enabled=(selectedItem != null);
                if (enabled && runFor[i].getCheckExistence()){
                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].setToolTipText(i+": "+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].setText(runFor[i].getLabel()+" "+shortName);
                }
                launchActions[i].setEnabled(enabled);
                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);
                String actionIconKey=tool.getImageKey(i);
                if ((actionIconKey!=null) && (VDTPluginImages.getImageDescriptor(actionIconKey)!=null))
                if ((actionIconKey!=null) && (VDTPluginImages.getImageDescriptor(actionIconKey)!=null))
                	launchActions[i].setImageDescriptor(VDTPluginImages.getImageDescriptor(actionIconKey));
                	launchActions[i].setImageDescriptor(VDTPluginImages.getImageDescriptor(actionIconKey));
@@ -655,17 +686,18 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
        }
        }
    } // launchTool()
    } // launchTool()
    
    
    private void openInstallationPropertiesDialog() {
    private int openInstallationPropertiesDialog() {
        Shell shell = VerilogPlugin.getActiveWorkbenchShell();
        Shell shell = VerilogPlugin.getActiveWorkbenchShell();
        SetupOptionsDialog dialog = new SetupOptionsDialog(shell);
        SetupOptionsDialog dialog = new SetupOptionsDialog(shell);
//        ContextOptionsDialog dialog = new ContextOptionsDialog(shell, ToolsCore.getContextManager().getInstallationContext());
//        ContextOptionsDialog dialog = new ContextOptionsDialog(shell, ToolsCore.getContextManager().getInstallationContext());
        dialog.setTitle("Instalation Parameters");
        dialog.setTitle("Instalation Parameters");
        dialog.create();
        dialog.create();
        dialog.open();
        return dialog.open();
        
    } // openInstallationPropertiesDialog()
    } // openInstallationPropertiesDialog()


    
    
    private void openToolPropertiesDialog(DesignMenuModel.Item item) {
    private int openToolPropertiesDialog(DesignMenuModel.Item item) {
        Shell shell = VerilogPlugin.getActiveWorkbenchShell();
        Shell shell = VerilogPlugin.getActiveWorkbenchShell();
        Context context = item.getTool();
        Context context = item.getTool();
        ContextOptionsDialog dialog = new ContextOptionsDialog( shell
        ContextOptionsDialog dialog = new ContextOptionsDialog( shell
@@ -673,15 +705,17 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
                                                              , selectedResource.getProject() );
                                                              , selectedResource.getProject() );
        dialog.setTitle("Tool Parameters");
        dialog.setTitle("Tool Parameters");
        dialog.create();
        dialog.create();
        dialog.open();
        return dialog.open();
    } // openToolPropertiesDialog()
    } // openToolPropertiesDialog()


    private void openDesignMenuSelectionDialog(IProject project) {
    private int openDesignMenuSelectionDialog(IProject project) {
        Shell shell = VerilogPlugin.getActiveWorkbenchShell();
        Shell shell = VerilogPlugin.getActiveWorkbenchShell();
        DesignMenuSelectionDialog dialog = new DesignMenuSelectionDialog( shell
        DesignMenuSelectionDialog dialog = new DesignMenuSelectionDialog( shell
                                                                        , desigMenuName.getValue() ); 
                                                                        , desigMenuName.getValue() ); 
        dialog.create();
        dialog.create();
        if (dialog.open() == Window.OK) {
        int result=dialog.open();
        if (result == Window.OK) {
        	System.out.println("openDesignMenuSelectionDialog()-> OK");
            DesignMenu newDesignMenu = dialog.getSelectedDesignMenu();
            DesignMenu newDesignMenu = dialog.getSelectedDesignMenu();
            String newDesignMenuName = newDesignMenu == null ? null
            String newDesignMenuName = newDesignMenu == null ? null
                                                             : newDesignMenu.getName();
                                                             : newDesignMenu.getName();
@@ -706,16 +740,19 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
            OptionsCore.doStoreOption(desigMenuName, project);
            OptionsCore.doStoreOption(desigMenuName, project);
            doLoadDesignMenu(newDesignMenuName);
            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();
        Shell shell = VerilogPlugin.getActiveWorkbenchShell();
        ILaunchConfiguration launchConfig = LaunchCore.createLaunchConfiguration( item.getTool()
        ILaunchConfiguration launchConfig = LaunchCore.createLaunchConfiguration( item.getTool()
                                                                                , selectedResource.getProject()
                                                                                , selectedResource.getProject()
                                                                                , null );
                                                                                , null );
        IStructuredSelection selection = new StructuredSelection(launchConfig);
        IStructuredSelection selection = new StructuredSelection(launchConfig);
        DebugUITools.openLaunchConfigurationDialogOnGroup( shell
        return DebugUITools.openLaunchConfigurationDialogOnGroup( shell
                                                         , selection
                                                         , selection
                                                         , VDT.ID_VERILOG_TOOLS_LAUNCH_GROUP );                        
                                                         , VDT.ID_VERILOG_TOOLS_LAUNCH_GROUP );                        
    } // openToolLaunchDialog()
    } // openToolLaunchDialog()
Loading