/******************************************************************************* * Copyright (c) 2013 hangum. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v2.1 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html * * Contributors: * hangum - initial API and implementation ******************************************************************************/ package com.hangum.tadpole.rdb.core.actions.connections; import org.eclipse.jface.action.IAction; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IViewActionDelegate; import org.eclipse.ui.IViewPart; import org.eclipse.ui.PlatformUI; import com.hangum.tadpole.engine.query.dao.ManagerListDTO; import com.hangum.tadpole.engine.query.dao.system.UserDBDAO; import com.hangum.tadpole.rdb.core.dialog.dbconnect.DBLoginDialog; import com.hangum.tadpole.rdb.core.viewers.connections.ManagerViewer; /** * db 연결 action * @author hangum * */ public class ConnectDatabase implements IViewActionDelegate { public static final String ID = "com.hangum.tadpole.browser.rap.core.action.connect.database"; private IStructuredSelection sel; private String selGroupName = ""; @Override public void run(IAction action) { if(sel != null) { if(sel.getFirstElement() instanceof ManagerListDTO) { ManagerListDTO mana = (ManagerListDTO)sel.getFirstElement(); selGroupName = mana.getName(); } else if(sel.getFirstElement() instanceof UserDBDAO) { UserDBDAO user =(UserDBDAO)sel.getFirstElement(); selGroupName = user.getParent().getName(); } } run(); } public void run() { final DBLoginDialog dialog = new DBLoginDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), selGroupName); final int ret = dialog.open(); final UserDBDAO userDB = dialog.getDTO(); final ManagerViewer managerView = (ManagerViewer)PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(ManagerViewer.ID); if(userDB == null || ret != Dialog.OK) return; Display.getCurrent().asyncExec(new Runnable() { @Override public void run() { managerView.addUserDB(userDB, true); } }); // end display } @Override public void selectionChanged(IAction action, ISelection selection) { sel = (IStructuredSelection)selection; } @Override public void init(IViewPart view) { } }