Package org.jampa.gui.handlers.playlists

Source Code of org.jampa.gui.handlers.playlists.MenuDeletePlaylistHandler

/*
* Jampa
* Copyright (C) 2008-2009 J. Devauchelle and contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* version 3 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*/

package org.jampa.gui.handlers.playlists;

import java.util.Iterator;

import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.IHandler;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IViewReference;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.handlers.HandlerUtil;
import org.jampa.controllers.Controller;
import org.jampa.gui.translations.Messages;
import org.jampa.logging.Log;
import org.jampa.model.playlists.Playlist;


public class MenuDeletePlaylistHandler extends AbstractHandler implements IHandler {

  private IWorkbenchPage _page;
 
  private void closeViewByID(String id) {
    IViewReference view = null;
    IViewReference[] tabView = _page.getViewReferences();
   
    for (int i = 0; i < tabView.length; i++) {
      if ((tabView[i].getSecondaryId() != null) &&
          (tabView[i].getSecondaryId().equals(id))) {
        view = tabView[i];
        break;
      }
    }
   
    if (view != null) {
      _page.hideView(view);
    }
  }
 
  @SuppressWarnings("unchecked")
  @Override
  public Object execute(ExecutionEvent event) throws ExecutionException {

    IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
    _page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
   
    boolean confirm = MessageDialog.openConfirm(window.getShell(),
        Messages.getString("MenuDeletePlaylistHandler.Title"), //$NON-NLS-1$
        Messages.getString("MenuDeletePlaylistHandler.Question")); //$NON-NLS-1$
   
    if (confirm) {
      ISelection selection = window.getActivePage().getSelection();

      Iterator iter = ((IStructuredSelection)selection).iterator();
     
      while (iter.hasNext()) {
        Object obj = iter.next();
        Log.getInstance(MenuDeletePlaylistHandler.class).debug("Removing playlist : " + ((Playlist ) obj).getName()); //$NON-NLS-1$
        Controller.getInstance().getPlaylistController().removePlaylist(((Playlist ) obj).getName());
       
        closeViewByID(((Playlist ) obj).getName());
      }
    }
    return null;
  }

}
TOP

Related Classes of org.jampa.gui.handlers.playlists.MenuDeletePlaylistHandler

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.