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 227588
Collapse All | Expand All

(-)a/db.dataview/src/org/netbeans/modules/db/dataview/output/DataViewPageContext.java (-9 / +18 lines)
Lines 113-119 Link Here
113
    DataViewTableUIModel getModel() {
113
    DataViewTableUIModel getModel() {
114
        return model;
114
        return model;
115
    }
115
    }
116
116
    
117
    boolean isTotalRowCountAvailable() {
118
        return totalRows >= 0;
119
    }
120
    
117
    int getTotalRows() {
121
    int getTotalRows() {
118
        return totalRows;
122
        return totalRows;
119
    }
123
    }
Lines 125-139 Link Here
125
    }
129
    }
126
130
127
    boolean hasRows() {
131
    boolean hasRows() {
128
        return (totalRows != 0 && pageSize != 0);
132
        return model.getRowCount() > 0;
129
    }
133
    }
130
134
131
    boolean hasNext() {
135
    boolean hasNext() {
132
        return ((currentPos + pageSize) <= totalRows) && hasRows();
136
        return (((currentPos + pageSize) <= totalRows) && hasRows()) || (totalRows < 0 && getModel().getRowCount() >= pageSize);
133
    }
137
    }
134
138
135
    boolean hasOnePageOnly() {
139
    boolean hasOnePageOnly() {
136
        return (currentPos - pageSize) <= 0;
140
        return totalRows > 0 && totalRows < pageSize;
137
    }
141
    }
138
142
139
    boolean hasPrevious() {
143
    boolean hasPrevious() {
Lines 141-147 Link Here
141
    }
145
    }
142
146
143
    boolean isLastPage() {
147
    boolean isLastPage() {
144
        return (currentPos + pageSize) > totalRows;
148
        return ((currentPos + pageSize) > totalRows) && totalRows > 0;
145
    }
149
    }
146
150
147
    boolean refreshRequiredOnInsert() {
151
    boolean refreshRequiredOnInsert() {
Lines 153-164 Link Here
153
    }
157
    }
154
158
155
    String pageOf() {
159
    String pageOf() {
156
        if (pageSize < 1 || totalRows < 1) {
160
        String curPage = NbBundle.getMessage(DataViewUI.class, "LBL_not_available");
157
            return ""; // NOI18N
161
        String totalPages = NbBundle.getMessage(DataViewUI.class, "LBL_not_available");
162
        
163
        if (pageSize >= 0 && currentPos >= 0) {
164
            curPage = Integer.toString(currentPos / pageSize + (pageSize == 1 ? 0 : 1));
158
        }
165
        }
159
166
160
        Integer curPage = currentPos / pageSize + (pageSize == 1 ? 0 : 1);
167
        if (pageSize >= 0 && totalRows >= 0) {
161
        Integer totalPages = totalRows / pageSize + (totalRows % pageSize > 0 ? 1 : 0);
168
            totalPages = Integer.toString(totalRows / pageSize + (totalRows % pageSize > 0 ? 1 : 0));
169
        }
170
162
        return NbBundle.getMessage(DataViewPageContext.class, "LBL_page_of", curPage, totalPages);
171
        return NbBundle.getMessage(DataViewPageContext.class, "LBL_page_of", curPage, totalPages);
163
    }
172
    }
164
173
(-)a/db.dataview/src/org/netbeans/modules/db/dataview/output/DataViewUI.java (-8 / +12 lines)
Lines 217-231 Link Here
217
    }
217
    }
218
218
219
    void updateTotalCountLabel() {
219
    void updateTotalCountLabel() {
220
        int count = dataView.getDataViewPageContext().getTotalRows();
221
        assert SwingUtilities.isEventDispatchThread() : "Must be called from AWT thread";  //NOI18N
220
        assert SwingUtilities.isEventDispatchThread() : "Must be called from AWT thread";  //NOI18N
222
        if (count < 0) {
221
        
223
            int pageSize = dataView.getDataViewPageContext().getPageSize();
222
        DataViewPageContext pageContext = dataView.getDataViewPageContext();
224
            int totalRows = dataView.getDataViewPageContext().getModel().getRowCount();
223
        
225
            String NA = NbBundle.getMessage(DataViewUI.class, "LBL_not_available");
224
        if (pageContext.isTotalRowCountAvailable()) {
226
            totalRowsLabel.setText(totalRows < pageSize ? totalRows + "" : NA);
225
            totalRowsLabel.setText(
226
                    pageContext.getTotalRows() + "   " + pageContext.pageOf());
227
        } else {
227
        } else {
228
            totalRowsLabel.setText(count + "   " + dataView.getDataViewPageContext().pageOf());
228
            totalRowsLabel.setText(NbBundle.getMessage(DataViewUI.class,
229
                    "LBL_not_available") + " "
230
                    + dataView.getDataViewPageContext().pageOf());
229
        }
231
        }
230
    }
232
    }
231
233
Lines 316-322 Link Here
316
318
317
            if (dataPage.hasNext()) {
319
            if (dataPage.hasNext()) {
318
                next.setEnabled(true);
320
                next.setEnabled(true);
319
                last.setEnabled(true);
321
                if(dataPage.getTotalRows() >= 0) {
322
                    last.setEnabled(true);
323
                }
320
            }
324
            }
321
325
322
            if (dataPage.hasOnePageOnly()) {
326
            if (dataPage.hasOnePageOnly()) {

Return to bug 227588