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 Diff line number Diff line
@@ -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;
+3 −0
Original line number Diff line number Diff line
@@ -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();
    }
    
+4 −0
Original line number Diff line number Diff line
@@ -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()
    
+11 −0
Original line number Diff line number Diff line
@@ -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) {
+59 −22
Original line number Diff line number Diff line
@@ -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()
    // 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()");

        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);
                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()
Loading