private void initToolbarContributedActions()

in eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/ServersActionModeFiddlerActionDelegate.java [251:327]


    private void initToolbarContributedActions() {
        cleanAction = new Action("Clean Publish...", IAction.AS_PUSH_BUTTON) {
            public void run() {
                if (server==null) {
                    MessageDialog.openInformation(view.getSite().getShell(), "No server selected", "A server must be selected");
                    return;
                }
                int selection = 2;
                if (!doNotAskAgain) {
                    MessageDialog dialog = new MessageDialog(view.getSite().getShell(), Messages.defaultDialogTitle, null, Messages.dialogPublishClean,
                            MessageDialog.QUESTION_WITH_CANCEL, 
                            new String[] {"Cancel", "OK (do not ask again)", "OK"}, 1) {
                        @Override
                        protected void configureShell(Shell shell) {
                            super.configureShell(shell);
                            setShellStyle(getShellStyle() | SWT.SHEET);
                        }
                    };
                    selection = dialog.open();
                }
                if (selection != 0) {
                    if (selection==1) {
                        doNotAskAgain = true;
                    }
                    IAdaptable info = new IAdaptable() {
                        public Object getAdapter(Class adapter) {
                            if (Shell.class.equals(adapter))
                                return view.getSite().getShell();
                            if (String.class.equals(adapter))
                                return "user";
                            return null;
                        }
                    };
                    
                    server.publish(IServer.PUBLISH_CLEAN, modules, info, null);
                }
            }
        };
        cleanAction.setText("Clean Publish...");
        cleanAction.setToolTipText("Clean and Publish...");
        ImageDescriptor cleanAndPublishImageDesc = new DecorationOverlayIcon(
                ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_PUBLISH).createImage(), 
                ImageDescriptor.createFromFile(SharedImages.class, "refresh.gif"), IDecoration.BOTTOM_RIGHT);
        cleanAction.setImageDescriptor(cleanAndPublishImageDesc);
        cleanAction.setId("org.apache.sling.ide.eclipse.ui.actions.CleanPublishAction");
        publishAction = new Action("Publish", IAction.AS_PUSH_BUTTON) {
            public void run() {
                if (server==null) {
                    MessageDialog.openInformation(view.getSite().getShell(), "No server selected", "A server must be selected");
                    return;
                }
                IAdaptable info = new IAdaptable() {
                    public Object getAdapter(Class adapter) {
                        if (Shell.class.equals(adapter))
                            return view.getSite().getShell();
                        if (String.class.equals(adapter))
                            return "user";
                        return null;
                    }
                };
                
                server.publish(IServer.PUBLISH_INCREMENTAL, modules, info, null);
            }
        };
        publishAction.setText("Publish");
        publishAction.setToolTipText("Publish");
        publishAction.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_PUBLISH));
        publishAction.setId("org.apache.sling.ide.eclipse.ui.actions.PublishAction");  
        cleanAction.setEnabled(false);
        publishAction.setEnabled(false);

        cleanActionContributionItem = new ActionContributionItem(cleanAction);
        publishActionContributionItem = new ActionContributionItem(publishAction);
        
        appendedToolbarActionContributionItems.add(publishActionContributionItem);
        appendedToolbarActionContributionItems.add(cleanActionContributionItem);
    }