This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 156492
Collapse All | Expand All

(-)a/db.dataview/src/org/netbeans/modules/db/dataview/api/DataViewPageContext.java (-3 / +3 lines)
Lines 80-90 Link Here
80
     * @since 1.20
80
     * @since 1.20
81
     */
81
     */
82
    public static int getStoredPageSize() {
82
    public static int getStoredPageSize() {
83
        if (defaultPageSize <= 0) {
83
        if (defaultPageSize < 0) {
84
            defaultPageSize = NbPreferences.forModule(
84
            defaultPageSize = NbPreferences.forModule(
85
                    DataViewPageContext.class).getInt(
85
                    DataViewPageContext.class).getInt(
86
                    PROP_STORED_PAGE_SIZE, DEFAULT_PAGE_SIZE);
86
                    PROP_STORED_PAGE_SIZE, DEFAULT_PAGE_SIZE);
87
            if (defaultPageSize <= 0) {
87
            if (defaultPageSize < 0) {
88
                defaultPageSize = DEFAULT_PAGE_SIZE;
88
                defaultPageSize = DEFAULT_PAGE_SIZE;
89
            }
89
            }
90
        }
90
        }
Lines 98-104 Link Here
98
     * @since 1.20
98
     * @since 1.20
99
     */
99
     */
100
    public static void setStoredPageSize(final int pageSize) {
100
    public static void setStoredPageSize(final int pageSize) {
101
        if (pageSize <= 0) {
101
        if (pageSize < 0) {
102
            throw new IllegalArgumentException("Negative pageSize");    //NOI18N
102
            throw new IllegalArgumentException("Negative pageSize");    //NOI18N
103
        }
103
        }
104
        DataViewPageContext.defaultPageSize = pageSize;
104
        DataViewPageContext.defaultPageSize = pageSize;
(-)a/db.dataview/src/org/netbeans/modules/db/dataview/output/DataView.java (-1 / +1 lines)
Lines 103-109 Link Here
103
        dv.dbConn = dbConn;
103
        dv.dbConn = dbConn;
104
        dv.sqlString = sqlString.trim();
104
        dv.sqlString = sqlString.trim();
105
        dv.nbOutputComponent = false;
105
        dv.nbOutputComponent = false;
106
        if(pageSize > 0) {
106
        if(pageSize >= 0) {
107
            dv.initialPageSize = pageSize;
107
            dv.initialPageSize = pageSize;
108
        }
108
        }
109
        try {
109
        try {
(-)a/db.dataview/src/org/netbeans/modules/db/dataview/output/DataViewPageContext.java (-8 / +16 lines)
Lines 154-187 Link Here
154
    }
154
    }
155
155
156
    boolean hasNext() {
156
    boolean hasNext() {
157
        if (pageSize == 0) {
158
            return false;
159
        }
157
        return (((currentPos + pageSize) <= totalRows) && hasRows()) || (totalRows < 0 && getModel().getRowCount() >= pageSize);
160
        return (((currentPos + pageSize) <= totalRows) && hasRows()) || (totalRows < 0 && getModel().getRowCount() >= pageSize);
158
    }
161
    }
159
162
160
    boolean hasOnePageOnly() {
163
    boolean hasOnePageOnly() {
161
        return totalRows > 0 && totalRows < pageSize;
164
        return pageSize == 0 || (totalRows > 0 && totalRows < pageSize);
162
    }
165
    }
163
166
164
    boolean hasPrevious() {
167
    boolean hasPrevious() {
165
        return ((currentPos - pageSize) > 0) && hasRows();
168
        return pageSize != 0 && ((currentPos - pageSize) > 0) && hasRows();
166
    }
169
    }
167
170
168
    boolean isLastPage() {
171
    boolean isLastPage() {
169
        return ((currentPos + pageSize) > totalRows) && totalRows > 0;
172
        return pageSize == 0 || (((currentPos + pageSize) > totalRows) && totalRows > 0);
170
    }
173
    }
171
174
172
    boolean refreshRequiredOnInsert() {
175
    boolean refreshRequiredOnInsert() {
173
        return (isLastPage() && model.getRowCount() <= pageSize);
176
        return pageSize == 0 || (isLastPage() && model.getRowCount() <= pageSize);
174
    }
177
    }
175
178
176
    String pageOf() {
179
    String pageOf() {
177
        String curPage = NbBundle.getMessage(DataViewUI.class, "LBL_not_available");
180
        String curPage = NbBundle.getMessage(DataViewUI.class, "LBL_not_available");
178
        String totalPages = NbBundle.getMessage(DataViewUI.class, "LBL_not_available");
181
        String totalPages = NbBundle.getMessage(DataViewUI.class, "LBL_not_available");
179
182
180
        if (pageSize >= 0 && currentPos >= 0) {
183
        if (pageSize == 0) {
184
            curPage = "1";
185
            totalPages = "1";
186
        }
187
188
        if (pageSize > 0 && currentPos >= 0) {
181
            curPage = Integer.toString(currentPos / pageSize + (pageSize == 1 ? 0 : 1));
189
            curPage = Integer.toString(currentPos / pageSize + (pageSize == 1 ? 0 : 1));
182
        }
190
        }
183
191
184
        if (pageSize >= 0 && totalRows >= 0) {
192
        if (pageSize > 0 && totalRows >= 0) {
185
            totalPages = Integer.toString(totalRows / pageSize + (totalRows % pageSize > 0 ? 1 : 0));
193
            totalPages = Integer.toString(totalRows / pageSize + (totalRows % pageSize > 0 ? 1 : 0));
186
        }
194
        }
187
        return NbBundle.getMessage(DataViewPageContext.class, "LBL_page_of", curPage, totalPages);
195
        return NbBundle.getMessage(DataViewPageContext.class, "LBL_page_of", curPage, totalPages);
Lines 189-195 Link Here
189
197
190
    synchronized void decrementRowSize(int count) {
198
    synchronized void decrementRowSize(int count) {
191
        setTotalRows(getTotalRows() - count);
199
        setTotalRows(getTotalRows() - count);
192
        if (totalRows <= pageSize) {
200
        if (pageSize == 0 || totalRows <= pageSize) {
193
            first();
201
            first();
194
        } else if (currentPos > totalRows) {
202
        } else if (currentPos > totalRows) {
195
            previous();
203
            previous();
Lines 198-204 Link Here
198
206
199
    synchronized void incrementRowSize(int count) {
207
    synchronized void incrementRowSize(int count) {
200
        setTotalRows(getTotalRows() + count);
208
        setTotalRows(getTotalRows() + count);
201
        if (totalRows <= pageSize) {
209
        if (pageSize == 0 || totalRows <= pageSize) {
202
            first();
210
            first();
203
        } else if (currentPos > totalRows) {
211
        } else if (currentPos > totalRows) {
204
            previous();
212
            previous();
(-)a/db.dataview/src/org/netbeans/modules/db/dataview/output/SQLExecutionHelper.java (-5 / +3 lines)
Lines 756-762 Link Here
756
756
757
            // Get next page
757
            // Get next page
758
            int rowCnt = 0;
758
            int rowCnt = 0;
759
            while (((pageSize == -1) || (pageSize > rowCnt)) && (hasNext)) {
759
            while (((pageSize <= 0) || (pageSize > rowCnt)) && (hasNext)) {
760
                if (Thread.currentThread().isInterrupted()) {
760
                if (Thread.currentThread().isInterrupted()) {
761
                    return;
761
                    return;
762
                }
762
                }
Lines 974-986 Link Here
974
974
975
    private String appendLimitIfRequired(DataViewPageContext pageContext,
975
    private String appendLimitIfRequired(DataViewPageContext pageContext,
976
            String sql) {
976
            String sql) {
977
        if (useScrollableCursors) {
977
        int pageSize = pageContext == null ? dataView.getPageSize() : pageContext.getPageSize();
978
        if (pageSize == 0 || useScrollableCursors) {
978
            return sql;
979
            return sql;
979
        } else if (limitSupported && isSelectStatement(sql)
980
        } else if (limitSupported && isSelectStatement(sql)
980
                && !isLimitUsedInSelect(sql)) {
981
                && !isLimitUsedInSelect(sql)) {
981
982
            int pageSize = pageContext == null ? dataView.getPageSize()
983
                    : pageContext.getPageSize();
984
            int currentPos = pageContext == null ? 1
982
            int currentPos = pageContext == null ? 1
985
                    : pageContext.getCurrentPos();
983
                    : pageContext.getCurrentPos();
986
            return sql + ' ' + LIMIT_CLAUSE + pageSize
984
            return sql + ' ' + LIMIT_CLAUSE + pageSize
(-)a/db.dataview/test/unit/src/org/netbeans/modules/db/dataview/api/DataViewPageContextTest.java (-2 / +2 lines)
Lines 57-70 Link Here
57
57
58
    public void testSetGetPageSize() {
58
    public void testSetGetPageSize() {
59
        int origSize = DataViewPageContext.getStoredPageSize();
59
        int origSize = DataViewPageContext.getStoredPageSize();
60
        assertTrue(origSize > 0);
60
        assertTrue(origSize > -1);
61
        int newSize = origSize + 1;
61
        int newSize = origSize + 1;
62
        DataViewPageContext.setStoredPageSize(newSize);
62
        DataViewPageContext.setStoredPageSize(newSize);
63
        assertEquals(newSize, DataViewPageContext.getStoredPageSize());
63
        assertEquals(newSize, DataViewPageContext.getStoredPageSize());
64
64
65
        boolean exception = false;
65
        boolean exception = false;
66
        try {
66
        try {
67
            DataViewPageContext.setStoredPageSize(0);
67
            DataViewPageContext.setStoredPageSize(-1);
68
        } catch (IllegalArgumentException e) {
68
        } catch (IllegalArgumentException e) {
69
            exception = true;
69
            exception = true;
70
        }
70
        }

Return to bug 156492