1 19 20 package org.netbeans.modules.db.explorer.actions; 21 22 import java.text.MessageFormat ; 23 24 import org.openide.DialogDisplayer; 25 import org.openide.NotifyDescriptor; 26 import org.openide.nodes.Node; 27 import org.openide.util.RequestProcessor; 28 29 import org.netbeans.lib.ddl.impl.Specification; 30 31 import org.netbeans.api.db.explorer.DatabaseException; 32 import org.netbeans.modules.db.explorer.dlg.CreateTableDialog; 33 import org.netbeans.modules.db.explorer.infos.DatabaseNodeInfo; 34 import org.netbeans.modules.db.explorer.infos.TableOwnerOperations; 35 36 public class CreateTableAction extends DatabaseAction { 37 static final long serialVersionUID =-7008851466327604724L; 38 39 public void performAction (Node[] activatedNodes) { 40 Node node; 41 if (activatedNodes != null && activatedNodes.length>0) 42 node = activatedNodes[0]; 43 else 44 return; 45 46 47 final DatabaseNodeInfo xnfo = (DatabaseNodeInfo) node.getCookie(DatabaseNodeInfo.class); 48 final String nodeName = node.getName(); 49 RequestProcessor.getDefault().post(new Runnable () { 50 public void run () { 51 try { 52 TableOwnerOperations nfo = (TableOwnerOperations) xnfo.getParent(nodename); 53 Specification spec = (Specification) xnfo.getSpecification(); 54 CreateTableDialog dlg = new CreateTableDialog(spec, (DatabaseNodeInfo) nfo); 55 if (dlg.run()) 56 try { 57 nfo.addTable(dlg.getTableName()); 58 } catch ( DatabaseException de ) { 59 } 61 } catch(Exception exc) { 62 String message = MessageFormat.format(bundle().getString("EXC_UnableToCreateTable"), new String [] {nodeName, exc.getMessage()}); DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message(message, NotifyDescriptor.ERROR_MESSAGE)); 64 } 65 } 66 }, 0); 67 } 68 } 69 | Popular Tags |