Package org.dcarew.googledocs.actions

Source Code of org.dcarew.googledocs.actions.DocsOpenGoogleSpreadsheetAction

/*
* DocsOpenGoogleDocsAction.java
*
* Copyright (c) 2007
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.dcarew.googledocs.actions;

import org.dcarew.googledocs.DocsPlugin;
import org.dcarew.googledocs.dialogs.DocsOpenDocDialog;
import org.dcarew.googledocs.editor.DocsEditorInput;
import org.dcarew.googledocs.editor.SpreadsheetEditor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.window.Window;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.PartInitException;

import com.google.gdata.data.spreadsheet.SpreadsheetEntry;

/**
* Our sample action implements workbench action delegate. The action proxy will be created by the
* workbench and shown in the UI. When the user tries to use the action, this delegate will be
* created and execution will be delegated to it.
*
* @see IWorkbenchWindowActionDelegate
*/
public class DocsOpenGoogleSpreadsheetAction
  implements IWorkbenchWindowActionDelegate
{
  private IWorkbenchWindow window;
 
 
  /**
   * The constructor.
   */
  public DocsOpenGoogleSpreadsheetAction()
  {
   
  }

  /**
   * The action has been activated. The argument of the method represents the 'real' action
   * sitting in the workbench UI.
   *
   * @see IWorkbenchWindowActionDelegate#run
   */
  public void run(IAction action)
  {
    DocsOpenDocDialog dialog = new DocsOpenDocDialog(window.getShell(), true);
   
    if (dialog.open() == Window.OK && dialog.getResultAsSpreadSheet() != null)
    {
      SpreadsheetEntry spreadsheet = dialog.getResultAsSpreadSheet();
     
      DocsEditorInput editorInput = new DocsEditorInput(spreadsheet);
     
      try
      {
        window.getActivePage().openEditor(editorInput, SpreadsheetEditor.EDITOR_ID, true, IWorkbenchPage.MATCH_INPUT);
      }
      catch (PartInitException exception)
      {
        ErrorDialog.openError(window.getShell(),
          "Error Opening Spreadsheet",
          "Unable to open " + spreadsheet.getTitle().getPlainText() + ".\n"
            + exception.toString(),
          new Status(IStatus.ERROR, DocsPlugin.PLUGIN_ID, exception.getMessage(), exception));
       
        DocsPlugin.log(exception);
      }     
    }
  }
 
  public void init(IWorkbenchWindow window)
  {
    this.window = window;
  }
 
  /**
   * Selection in the workbench has been changed. We can change the state of the 'real' action
   * here if we want, but this can only happen after the delegate has been created.
   *
   * @see IWorkbenchWindowActionDelegate#selectionChanged
   */
  public void selectionChanged(IAction action, ISelection selection)
  {
   
  }

  public void dispose()
  {
   
  }
 
}
TOP

Related Classes of org.dcarew.googledocs.actions.DocsOpenGoogleSpreadsheetAction

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.