Example usage for javax.swing.table TableModel getRowCount

List of usage examples for javax.swing.table TableModel getRowCount

Introduction

In this page you can find the example usage for javax.swing.table TableModel getRowCount.

Prototype

public int getRowCount();

Source Link

Document

Returns the number of rows in the model.

Usage

From source file:us.daveread.basicquery.BasicQuery.java

/**
 * Reports statistics on various data such as the date a query was executed
 * and/*from  w  w  w.j ava 2 s .c o m*/
 * the date the results were fetched. Other statistics are reported on such as
 * the
 * the date a connection was asked for, and the date it was actually received.
 * The report statistics are written to an external text file
 * represented by DBSTATS_NAME.
 * 
 * @param sqlStatement
 *          The SQL statement
 * @param connAsk
 *          The time when the connection was requested
 * @param connGot
 *          The time when the connection was returned
 * @param stmtGot
 *          The time when the statement was returned
 * @param queryStart
 *          The time when query exeution began
 * @param queryReady
 *          The time when the query finished exeuting
 * @param queryRSFetched
 *          The time when the result set had been completely fetched
 * @param queryRSProcessed
 *          The time when the result set had been completely processed
 * @param rows
 *          The number of rows in the result set
 * @param cols
 *          The number of columns in the result set
 * @param model
 *          The table model for the results
 * @param outParams
 *          The output parameters defined for this SQL statement
 */
private void reportStats(String sqlStatement, java.util.Date connAsk, java.util.Date connGot,
        java.util.Date stmtGot, java.util.Date queryStart, java.util.Date queryReady,
        java.util.Date queryRSFetched, java.util.Date queryRSProcessed, long rows, int cols, TableModel model,
        List<Object> outParams) {
    Runtime runtime;
    String runStats;
    PrintWriter out;
    boolean firstEntry;
    final String valueNotApplicable = "\"" + Resources.getString("proValueNotApplicable") + "\",";

    runStats = "";
    out = null;
    firstEntry = false;

    if (fileLogStats.isSelected()) {
        // Identify whether file exists, if not create and add header row
        try {
            new FileReader(DBSTATS_NAME).close();
        } catch (Exception any) {
            firstEntry = true;
        }

        try {
            out = new PrintWriter(new FileWriter(DBSTATS_NAME, true));
        } catch (Exception any) {
            LOGGER.error("Failed to write the statistics file [" + DBSTATS_NAME + "]", any);
            messageOut(Resources.getString("errFailWriteStatsFile", DBSTATS_NAME, any.getMessage()), STYLE_RED);
        }
    }

    // Make sure it is always safe to write to "out" -- simplifies logic
    if (out == null) {
        out = new PrintWriter(new StringWriter());
    }

    // Header, if needed
    if (firstEntry) {
        out.print(Resources.getString("proQueryStatsExportHeader"));
        if (outParams != null && outParams.size() > 0) {
            for (int param = 0; param < outParams.size(); ++param) {
                out.print(Resources.getString("proQueryStatsExportHeaderParam", param + ""));
            }
        }
        out.println();
    }

    // Output Query Index Number
    out.print(querySelection.getSelectedIndex() + ",");

    // Output SQL, replacing quotes with apostrophes
    out.print("\"" + sqlStatement.replace('"', '\'') + "\",");

    // Output timestamp
    out.print(Utility.formattedDate(new java.util.Date()) + ",");

    // Output time required to get connection to database
    if (connAsk != null && connGot != null) {
        runStats += Resources.getString("proTimeConnOpen", (connGot.getTime() - connAsk.getTime()) + "");
        runStats += "  ";
        out.print((connGot.getTime() - connAsk.getTime()) + ",");
    } else {
        out.print(valueNotApplicable);
    }

    // Output time required to get statement object
    if (connGot != null && stmtGot != null) {
        runStats += Resources.getString("proTimeStmtAccess", (stmtGot.getTime() - connGot.getTime()) + "");
        runStats += "  ";
        out.print((stmtGot.getTime() - connGot.getTime()) + ",");
    } else {
        out.print(valueNotApplicable);
    }

    // Time it took to configure statement
    if (queryStart != null && stmtGot != null) {
        runStats += Resources.getString("proTimeStmtSetup", (queryStart.getTime() - stmtGot.getTime()) + "");
        runStats += "  ";
        out.print((queryStart.getTime() - stmtGot.getTime()) + ",");
    } else {
        out.print(valueNotApplicable);
    }

    runStats += "\n          ";

    // Output time DB took to execute query
    if (queryStart != null && queryReady != null) {
        runStats += Resources.getString("proTimeDBExecute", (queryReady.getTime() - queryStart.getTime()) + "");
        runStats += "  ";
        out.print((queryReady.getTime() - queryStart.getTime()) + ",");
    } else {
        out.print(valueNotApplicable);
    }

    // Output time it took to fetch all results
    if (queryReady != null && queryRSFetched != null) {
        runStats += Resources.getString("proTimeResultsFetch",
                (queryRSFetched.getTime() - queryReady.getTime()) + "");
        runStats += "  ";
        out.print((queryRSFetched.getTime() - queryReady.getTime()) + ",");
    } else {
        out.print(valueNotApplicable);
    }

    // Output time it took to process all results
    if (queryReady != null && queryRSProcessed != null) {
        runStats += Resources.getString("proTimeResultSet",
                (queryRSProcessed.getTime() - queryReady.getTime()) + "");
        runStats += "  ";
        out.print((queryRSProcessed.getTime() - queryReady.getTime()) + ",");
    } else {
        out.print(valueNotApplicable);
    }

    if (runStats.length() > 0) {
        messageOut(Resources.getString("proTimeDBStats") + " ", STYLE_SUBTLE, false);
        messageOut(runStats, STYLE_NORMAL, false);
        runStats = "";
    }

    // Output total time it took to obtain connection, execute SQL and obtain
    // results
    if (connAsk != null && queryRSFetched != null) {
        runStats += Resources.getString("proTimeTotal", (queryRSFetched.getTime() - connAsk.getTime()) + "");
        runStats += "  ";
        out.print((queryRSFetched.getTime() - connAsk.getTime()) + ",");
    } else if (connAsk != null && queryRSProcessed != null) {
        runStats += Resources.getString("proTimeTotal", (queryRSProcessed.getTime() - connAsk.getTime()) + "");
        runStats += "  ";
        out.print((queryRSProcessed.getTime() - connAsk.getTime()) + ",");
    } else if (connAsk != null && queryReady != null) {
        runStats += Resources.getString("proTimeTotal", (queryReady.getTime() - connAsk.getTime()) + "");
        runStats += "  ";
        out.print((queryReady.getTime() - connAsk.getTime()) + ",");
    } else {
        out.print(valueNotApplicable);
    }

    messageOut(runStats, STYLE_BOLD, true);

    // Output number of columns in resultset
    out.print(cols + ",");

    // Output number of rows returned or modified
    out.print(rows + "," + maxRows.getSelectedItem().toString() + ",");

    runtime = Runtime.getRuntime();

    // Output environment information
    out.print(runtime.totalMemory() + "," + runtime.freeMemory() + ","
            + (runtime.totalMemory() - runtime.freeMemory()) + "," + runtime.maxMemory() + ","
            + runtime.availableProcessors());

    if (configDisplayClientInfo.isSelected()) {
        runStats = Resources.getString("proMemAlloc", runtime.totalMemory() + "");
        runStats += " " + Resources.getString("proMemFree", runtime.freeMemory() + "");
        runStats += " "
                + Resources.getString("proMemUsed", (runtime.totalMemory() - runtime.freeMemory()) + "");
        runStats += " " + Resources.getString("proMemMax", runtime.maxMemory() + "");
        runStats += " " + Resources.getString("proProcessors", runtime.availableProcessors() + "");

        messageOut(Resources.getString("proClientEnv") + " ", STYLE_SUBTLE, false);
        messageOut(runStats);
    }

    if (poolConnect.isSelected()) {
        messageOut(Resources.getString("msgPoolStats") + " ", STYLE_SUBTLE, false);
        messageOut(Resources.getString("msgPoolStatsCount", getDBPool().getNumActive() + "",
                getDBPool().getNumIdle() + ""));
    }

    // If output parameters, list them
    if (outParams != null && outParams.size() > 0) {
        for (int param = 0; param < outParams.size(); ++param) {
            out.print(",");
            if (outParams.get(param) instanceof String) {
                out.print("\"");
            }
            out.print(outParams.get(param));
            if (outParams.get(param) instanceof String) {
                out.print("\"");
            }
        }
    }

    // If model given, output describe content
    if (model != null) {
        for (int row = 1; row < model.getRowCount(); ++row) {
            out.print(",\"");

            // Column Name
            out.print(model.getValueAt(row, 0));

            // Type
            out.print(" " + model.getValueAt(row, 1));

            // Size
            out.print(" " + model.getValueAt(row, 2));

            // Precision
            out.print(" (" + model.getValueAt(row, 3) + "," + model.getValueAt(row, 4) + ")");

            out.print("\"");
        }
    }

    out.println();
    out.close();
}

From source file:us.daveread.basicquery.BasicQuery.java

/**
 * Gets the column name for the column that is being selected in the table
 * /*  w ww .j  a va2  s. c  o  m*/
 * @return columns A string array with the Column Names and Values
 */
private String[][] getColumnNamesForTable() {
    String[][] columns;
    TableModel model;

    model = table.getModel();

    if (modeOfCurrentTable == Query.MODE_DESCRIBE) {
        columns = new String[model.getRowCount()][3];
        for (int i = 0; i < model.getRowCount(); ++i) {
            columns[i][0] = model.getValueAt(i, 0).toString();
            columns[i][1] = model.getValueAt(i, 1).toString(); // Type
            if (table.isRowSelected(i)) {
                columns[i - 1][2] = "Selected";
            } else {
                columns[i - 1][2] = null;
            }
        }
    } else {
        columns = new String[model.getColumnCount()][3];
        for (int i = 0; i < model.getColumnCount(); ++i) {
            columns[i][0] = model.getColumnName(i);

            // Remove type if present
            if (columns[i][0].indexOf("[") > -1) {
                columns[i][1] = columns[i][0].substring(columns[i][0].indexOf("[") + 1);
                columns[i][0] = columns[i][0].substring(0, columns[i][0].indexOf("[")).trim();
            } else {
                /**
                 * Todo: change column name/type design so that we can easily get the
                 * column type.
                 */
                columns[i][1] = "Number";
            }

            if (table.isColumnSelected(i)) {
                columns[i][2] = "Selected";
            } else {
                columns[i][2] = null;
            }
        }
    }

    return columns;
}

From source file:us.daveread.basicquery.BasicQuery.java

/**
 * Writes the data onto a file that is specified by the filePath
 * /*from  ww  w. j  a va 2 s .  com*/
 * @param query
 *          The SQL statement
 * @param model
 *          The model for the current results
 * @param filePath
 *          A String that denotes the filepath
 * @param append
 *          Whether to append the current results into the file
 * 
 * @todo Make this handle other data types (especially Date/Time) better
 *       for cleaner import to spreadsheet.
 */
private void writeDataAsCSV(String query, TableModel model, String filePath, boolean append) {
    PrintWriter out;
    int row, col;
    boolean[] quote;
    boolean quoteThis;
    String temp;
    Object value;

    out = null;

    this.setCursor(new Cursor(Cursor.WAIT_CURSOR));
    (flashRunIndicator = new Thread(
            new FlashForeground(runIndicator, Color.red.brighter(), Color.lightGray, 5))).start();
    (timeRunIndicator = new Thread(new InsertTime(timeIndicator, new java.util.Date().getTime(),
            QUERY_EXECUTION_TIMER_UPDATE_DELAY_MS))).start();

    try {
        out = new PrintWriter(new FileWriter(filePath, append));

        messageOut("");
        messageOut(Resources.getString("msgStartExportToFile", filePath));

        // Output query
        if (!fileExportsRaw.isSelected()) {
            // Make it look like a comment using hash comment character
            out.print("#,");

            out.print("\"");
        }
        // out.print(getQuery().getSQL());
        out.print(query.replaceAll("\n", " "));
        if (!fileExportsRaw.isSelected()) {
            out.print("\"");
        }
        out.println();

        // Setup array to hold which columns need to be quoted
        quote = new boolean[model.getColumnCount()];

        // Output column headings - determine if column needs quotes
        for (col = 0; col < model.getColumnCount(); ++col) {
            if (col > 0) {
                out.print(",");
            }
            out.print("\"" + model.getColumnName(col) + "\"");

            /**
             * todo: use column type to set need for quotes
             */
            quote[col] = false;
        }
        out.println();

        // Output data
        for (row = 0; row < model.getRowCount(); ++row) {
            for (col = 0; col < model.getColumnCount(); ++col) {
                if (col > 0) {
                    out.print(",");
                }

                // Get the field content
                try {
                    value = model.getValueAt(row, col);
                    if (value == null) {
                        temp = "";
                    } else if (value instanceof java.sql.Timestamp) {
                        temp = Utility.formattedDate((java.sql.Timestamp) value);
                    } else {
                        temp = model.getValueAt(row, col).toString();
                        if (!fileExportsRaw.isSelected()) {
                            temp = temp.replace('"', '\'');
                            temp = temp.replace('\n', '~');
                        }
                    }
                } catch (Exception any) {
                    LOGGER.error("Failed to export data", any);

                    // Display error and move on
                    messageOut(Resources.getString("errFailDuringExport", any.getMessage()), STYLE_RED);
                    temp = "";
                }

                // Decide if quotes are needed:
                // -If the row is a known character type
                // -If this field contains a comma
                quoteThis = !fileExportsRaw.isSelected() && (quote[col] || temp.indexOf(",") > -1);

                // Output the field
                if (quoteThis) {
                    out.print("\"");
                }
                out.print(temp);
                if (quoteThis) {
                    out.print("\"");
                }
            }
            if (!fileNoCRAddedToExportRows.isSelected()) {
                out.println();
            }
        }

        // Assume that if writing multiple resultsets to file the
        // user would appreciate a separation line between them.
        if (append) {
            out.println("\n********");
        }

        messageOut(Resources.getString("msgEndExportToFile"));
    } catch (Exception any) {
        LOGGER.error("Unable to write data to file", any);
        messageOut(Resources.getString("errFailDataSave", any.toString()), STYLE_RED);
    } finally {
        if (out != null) {
            try {
                out.close();
            } catch (Exception any) {
                LOGGER.error("Failed while writing data to CSV file", any);
            }
        }
    }

    flashRunIndicator.interrupt();
    flashRunIndicator = null;
    timeRunIndicator.interrupt();
    timeRunIndicator = null;
    this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}

From source file:vacationscheduler.UpcomingReservations.java

public void jTableToExcel() {

    try {/*from w w  w.  j a va  2s. c  o m*/
        String fileName = "./excelAttempt.xls";

        TableModel model = jtable_upcomingReservations.getModel();
        FileWriter file = new FileWriter(fileName);

        for (int column = 0; column < model.getColumnCount(); column++) {
            file.write(model.getColumnName(column) + "\t");

        }

        file.write("\n");

        for (int i = 0; i < model.getRowCount(); i++) {
            for (int j = 0; j < model.getColumnCount(); j++) {
                file.write(model.getValueAt(i, j).toString() + "\t");
            }
            file.write("\n");
        }

        file.close();

        File file_file = new File(fileName);

        Desktop.getDesktop().open(file_file);

    } catch (IOException ex) {
        Logger.getLogger(UpcomingReservations.class.getName()).log(Level.SEVERE, null, ex);
    }

}