Package org.rstudio.studio.client.workbench.views.buildtools

Source Code of org.rstudio.studio.client.workbench.views.buildtools.BuildPane

/*
* BuildPane.java
*
* Copyright (C) 2009-12 by RStudio, Inc.
*
* Unless you have received this program directly from RStudio pursuant
* to the terms of a commercial license agreement with RStudio, then
* this program is licensed to you under the terms of version 3 of the
* GNU Affero General Public License. This program is distributed WITHOUT
* ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT,
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the
* AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details.
*
*/
package org.rstudio.studio.client.workbench.views.buildtools;

import com.google.gwt.core.client.JsArray;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;

import org.rstudio.core.client.CodeNavigationTarget;
import org.rstudio.core.client.events.HasSelectionCommitHandlers;
import org.rstudio.core.client.widget.Toolbar;
import org.rstudio.core.client.widget.ToolbarButton;
import org.rstudio.core.client.widget.ToolbarPopupMenu;
import org.rstudio.studio.client.common.compile.CompileError;
import org.rstudio.studio.client.common.compile.CompileOutput;
import org.rstudio.studio.client.common.compile.CompileOutputBufferWithHighlight;
import org.rstudio.studio.client.common.compile.CompilePanel;
import org.rstudio.studio.client.common.icons.StandardIcons;
import org.rstudio.studio.client.workbench.commands.Commands;
import org.rstudio.studio.client.workbench.model.Session;
import org.rstudio.studio.client.workbench.model.SessionInfo;
import org.rstudio.studio.client.workbench.ui.WorkbenchPane;

public class BuildPane extends WorkbenchPane implements BuildPresenter.Display
{
   @Inject
   public BuildPane(Commands commands,
                    Session session)
   {
      super("Build");
      commands_ = commands;
      session_ = session;
      compilePanel_ = new CompilePanel(new CompileOutputBufferWithHighlight());
      ensureWidget();
   }
  
   @Override
   protected Toolbar createMainToolbar()
   {
      Toolbar toolbar = new Toolbar();
     
      // always include build all
      toolbar.addLeftWidget(commands_.buildAll().createToolbarButton());
      toolbar.addLeftSeparator();
     
      // packages get check package
      String type = session_.getSessionInfo().getBuildToolsType();
      if (type.equals(SessionInfo.BUILD_TOOLS_PACKAGE))
      {
         toolbar.addLeftWidget(commands_.checkPackage().createToolbarButton());
         toolbar.addLeftSeparator();
      }
     
      // create more menu
      ToolbarPopupMenu moreMenu = new ToolbarPopupMenu();
      if (type.equals(SessionInfo.BUILD_TOOLS_MAKEFILE))
      {
         moreMenu.addItem(commands_.rebuildAll().createMenuItem(false));
         moreMenu.addItem(commands_.cleanAll().createMenuItem(false));
         moreMenu.addSeparator();
      }
     
      // packages get additional commands
      else if (type.equals(SessionInfo.BUILD_TOOLS_PACKAGE))
      {
         moreMenu.addItem(commands_.devtoolsLoadAll().createMenuItem(false));
         moreMenu.addItem(commands_.rebuildAll().createMenuItem(false));
         moreMenu.addSeparator();
         moreMenu.addItem(commands_.testPackage().createMenuItem(false));
         moreMenu.addSeparator();
         moreMenu.addItem(commands_.checkPackage().createMenuItem(false));
         moreMenu.addSeparator();
         moreMenu.addItem(commands_.buildSourcePackage().createMenuItem(false));
         moreMenu.addItem(commands_.buildBinaryPackage().createMenuItem(false));
         moreMenu.addSeparator();
         moreMenu.addItem(commands_.roxygenizePackage().createMenuItem(false));  
         moreMenu.addSeparator();
      }
      moreMenu.addItem(commands_.buildToolsProjectSetup().createMenuItem(false));
     
      // add more menu
      ToolbarButton moreButton = new ToolbarButton(
                                   "More",
                                   StandardIcons.INSTANCE.more_actions(),
                                   moreMenu);
      toolbar.addLeftWidget(moreButton);
     
      // connect compile panel
      compilePanel_.connectToolbar(toolbar);
    
     
      return toolbar;
   }
  
   @Override
   protected Widget createMainWidget()
   {     
      return compilePanel_;
   }
  
   @Override
   public void buildStarted()
   {
      compilePanel_.compileStarted(null)
   }

   @Override
   public void showOutput(CompileOutput output)
   {
      compilePanel_.showOutput(output);
   }
  
   @Override
   public void showErrors(String basePath,
                          JsArray<CompileError> errors,
                          boolean ensureVisible,
                          int autoSelect)
   {
      compilePanel_.showErrors(basePath, errors, autoSelect);
     
      if (ensureVisible && CompileError.showErrorList(errors))
         ensureVisible();
   }
  
   @Override
   public void buildCompleted()
   {
      compilePanel_.compileCompleted()
   }
  
   @Override
   public HasClickHandlers stopButton()
   {
      return compilePanel_.stopButton();
   }
  
   @Override
   public HasSelectionCommitHandlers<CodeNavigationTarget> errorList()
   {
      return compilePanel_.errorList();
   }
  
   @Override
   public void scrollToBottom()
   {
      compilePanel_.scrollToBottom();  
   }
   private Commands commands_;
   private Session session_;
  
   CompilePanel compilePanel_;
}
TOP

Related Classes of org.rstudio.studio.client.workbench.views.buildtools.BuildPane

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.