|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.db.explorer.actions; import java.sql.*; import java.text.MessageFormat; import java.util.*; import org.openide.*; import org.openide.nodes.*; import org.netbeans.lib.ddl.*; import org.netbeans.lib.ddl.impl.*; import org.netbeans.lib.ddl.adaptors.*; import org.netbeans.modules.db.explorer.*; import org.netbeans.modules.db.explorer.dlg.*; import org.netbeans.modules.db.explorer.nodes.*; import org.netbeans.modules.db.explorer.infos.*; public class AddIndexAction extends DatabaseAction { public void performAction (Node[] activatedNodes) { Node node; if (activatedNodes != null && activatedNodes.length>0) node = activatedNodes[0]; else return; try { DatabaseNodeInfo info = (DatabaseNodeInfo)node.getCookie(DatabaseNodeInfo.class); IndexListNodeInfo nfo = (IndexListNodeInfo)info.getParent(nodename); String tablename = (String)nfo.get(DatabaseNode.TABLE); String columnname = (String)nfo.get(DatabaseNode.COLUMN); Specification spec = (Specification)nfo.getSpecification(); String index = (String)nfo.get(DatabaseNode.INDEX); DriverSpecification drvSpec = info.getDriverSpecification(); // List columns not present in current index Vector cols = new Vector(5); drvSpec.getColumns(tablename, "%"); ResultSet rs = drvSpec.getResultSet(); HashMap rset = new HashMap(); while (rs.next()) { rset = drvSpec.getRow(); cols.add((String) rset.get(new Integer(4))); rset.clear(); } rs.close(); if (cols.size() == 0) throw new Exception(bundle.getString("EXC_NoUsableColumnInPlace")); // NOI18N // Create and execute command AddIndexDialog dlg = new AddIndexDialog(cols, spec, info); dlg.setIndexName(tablename + "_idx"); // NOI18N if (dlg.run()) { nfo.addIndex(dlg.getIndexName()); } } catch(Exception exc) { String message = MessageFormat.format(bundle.getString("ERR_UnableToPerformOperation"), new String[] {node.getName(), exc.getMessage()}); // NOI18N DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message(message, NotifyDescriptor.ERROR_MESSAGE)); } } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.