📄 adhocreportframe.java
字号:
setColumnSelected(selectedColumn - 1);
}
});
delButton.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
int selectedColumn = adhocGrid.getView().getSelectedColumn();
Events.ELEMENT_REMOVED_EVENT.setData(reportElements.get(
selectedColumn));
eventSource.fireEvent(Events.ELEMENT_REMOVED_EVENT);
removeReportElement(selectedColumn);
}
});
renButton.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
int selectedColumn = adhocGrid.getView().getSelectedColumn();
AdhocData data = (AdhocData) reportElements.get(selectedColumn);
getFieldRenamingPopup().setInputText(
data.getFieldSent().getCaption());
getFieldRenamingPopup().show(renButton);
}
});
moveRightButton.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
int selectedColumn = adhocGrid.getView().getSelectedColumn();
moveReportElement(selectedColumn, selectedColumn + 1);
setColumnSelected(selectedColumn + 1);
}
});
saveButton.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
getSaveReportPopup().reset();
getSaveReportPopup().show(saveButton);
}
});
loadButton.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
getLoadedReportsDialog().showReportList();
}
});
adhocGrid.getController().getEventSource().addEventListener(this);
}
private SingleLineInputDialog getSaveReportPopup() {
if(saveReportPopup == null) {
saveReportPopup = createSaveReportPopup();
}
return saveReportPopup;
}
private SingleLineInputDialog createSaveReportPopup() {
final SingleLineInputDialog dialog = new SingleLineInputDialog(
SAVE_REPORT_MESSAGE, REPORT_NAME_MESSAGE, false);
dialog.getEventSource().addEventListener(new EventListener() {
public void onEvent(Event event, Widget sender) {
if(event == OkayCancelPopup.Events.OK) {
if(!StringUtil.isStringEmpty(dialog.getInputText())) {
eventSource.fireEvent(Events.SAVE_REPORT);
} else {
DialogHelper.showModalMessageDialog(
FILL_REPORT_NAME_FIRST_MESSAGE);
}
}
}
});
return dialog;
}
private SingleLineInputDialog getFieldRenamingPopup() {
if(fieldRenamingPopup == null) {
fieldRenamingPopup = createFieldRenamingPopup();
}
return fieldRenamingPopup;
}
private SingleLineInputDialog createFieldRenamingPopup() {
final SingleLineInputDialog dialog = new SingleLineInputDialog(
FIELD_NAME_MESSAGE, NEW_FIELD_NAME_INPUT_MESSAGE, false);
dialog.getEventSource().addEventListener(new EventListener() {
public void onEvent(Event event, Widget sender) {
if(event == OkayCancelPopup.Events.OK) {
if(!StringUtil.isStringEmpty(dialog.getInputText())) {
setFieldCaption();
} else {
DialogHelper.showModalMessageDialog(
FILL_FIELD_NAME_FIRST_MESSAGE);
}
}
}
});
return dialog;
}
private LoadingReportDialog getLoadedReportsDialog() {
if(loadReportPopup == null) {
loadReportPopup = new LoadingReportDialog(
metaData.getAdhocReportsMeta(), new LoadReportCallback());
}
return loadReportPopup;
}
public void runReport(List filters) {
RPC.QAsyncCallback callback = new SearchGridRecordsAsyncCallback();
AdhocSearchGridRecordsRequest request
= new AdhocSearchGridRecordsRequest();
QGridModel model = adhocGrid.getModel();
GridSearchProperties props = new
GridSearchProperties(model.isCounterToggledOn(),
(int) model.getCurrentPage(),
model.getPageSize(), null);
request.setFields(reportElementsToRequestElements());
request.setEntityFilters(filters);
SortColumn col = model.getSortColumn();
if(col != null) {
AdhocData element = (AdhocData) reportElements.get(
col.getColumnIndex());
String formId = metaData.getFormID(element.getFormIndex());
String key = EntityElement.getElementKey(formId,
element.getFieldSent().getFieldID());
props.setSortField(new SortFieldImpl(key,
model.getSortField().getSortOrder()));
}
request.setProps(props);
RPC.getRPC().customEntitiesFieldsSearch(request, callback);
}
public void exportGridToExcel(List filters) {
exportGrid(filters, EXCEL_TYPE);
}
public void exportGridToWord(List filters) {
exportGrid(filters, WORD_TYPE);
}
public void exportGridToHtml(List filters) {
exportGrid(filters, HTML_TYPE);
}
private void exportGrid(List filters, String exportType) {
long prcId = generateUniqueProcessId();
PrintCallback callback = new PrintCallback(exportType, prcId, false);
if(printRequest == null) {
printRequest = new AdhocPrintRequestObject();
}
printRequest = new AdhocPrintRequestObject(filters,
reportElementsToRequestElements(), prcId);
RPC.getRPC().customEntitiesFieldsReport(printRequest, callback);
}
private static long generateUniqueProcessId() {
return System.currentTimeMillis();
}
/**
* Load report with the given report name and elements
*
* @param reportName report name
* @param reportFields elements of {@link com.queplix.core.client.common.crossframes.AdhocData}
*/
public void loadReport(String reportName, List reportFields) {
removeAllReportElements();
addAllReportElements(reportFields);
loadedReportLabel.setText(REPORT_LOADED_LABEL + reportName);
}
public void saveAdhocReport(List filters) {
RPC.QAsyncCallback callback = new SaveReportCallback();
if(saveReportRequest == null) {
saveReportRequest = new SaveAdhocReportRequestObject();
}
saveReportRequest.init(filters, reportElementsToRequestElements(),
getSaveReportPopup().getInputText());
RPC.getRPC().saveReport(saveReportRequest, callback);
}
private List/*]<ReportElement>[*/ reportElementsToRequestElements() {
ArrayList/*]<ReportElement>[*/ fields
= new ArrayList/*]<ReportElement>[*/();
for(int i = 0; i < reportElements.size(); i++) {
AdhocData data = (AdhocData) reportElements.get(i);
String formId = metaData.getFormID(data.getFormIndex());
fields.add(new EntityElement(formId,
data.getFieldSent().getFieldID(),
data.getFieldSent().getCaption()));
}
return fields;
}
private void initGUI() {
setWidth("100%");
frameLinks = new FrameLinks();
frameLinks.getEventSource().addEventListener(eventSource);
add(frameLinks);
setCellHorizontalAlignment(frameLinks,
HasHorizontalAlignment.ALIGN_RIGHT);
buttonsPanel = new HorizontalPanel();
clearAllButton = new QButton(CLEAR_ALL_BUTTON,
CLEAR_ALL_TOOLTIP_BUTTON);
buttonsPanel.add(clearAllButton);
runButton = new QButton(RUN_REPORT_BUTTON, RUN_REPORT_TOOLTIP_BUTTON);
buttonsPanel.add(runButton);
moveLeftButton = new QButton(MOVE_COLUMN_LEFT_BUTTON,
MOVE_COLUMN_LEFT_TOOLTIP_BUTTON);
moveLeftButton.setEnabled(false);
buttonsPanel.add(moveLeftButton);
delButton = new QButton(DELETE_COLUMN_BUTTON,
DELETE_COLUMN_TOOLTIP_BUTTON);
buttonsPanel.add(delButton);
renButton = new QButton(RENAME_COLUMN_BUTTON,
RENAME_COLUMN_TOOLTIP_BUTTON);
buttonsPanel.add(renButton);
moveRightButton = new QButton(MOVE_COLUMN_RIGHT_BUTTON,
MOVE_COLUMN_RIGHT_TOOLTIP_BUTTON);
buttonsPanel.add(moveRightButton);
saveButton = new QButton(SAVE_REPORT_BUTTON,
SAVE_REPORT_TOOLTIP_BUTTON);
buttonsPanel.add(saveButton);
loadButton = new QButton(LOAD_REPORT_BUTTON,
LOAD_REPORT_TOOLTIP_BUTTON);
buttonsPanel.add(loadButton);
add(buttonsPanel);
loadedReportLabel = new Label();
loadedReportLabel.setText(REPORT_LOADED_LABEL + NONE_REPORT_NAME);
add(loadedReportLabel);
adhocGrid = new QGrid(new GridMeta(), false);
DeckPanel deck = new DeckPanel();
deck.add(adhocGrid.getView());
deck.setWidth("100%");
deck.showWidget(0);
add(deck);
Window.addWindowResizeListener(this);
setWidth(StringUtil.pixelToSize(Window.getClientWidth()));
}
public Widget getView() {
return this;
}
public void activated() {
isActive = true;
refresh();
}
public void disabled() {
isActive = false;
}
/**
* @return list of AdhocData elements. List<AdhocData>
*/
public List getReportElements() {
return reportElements;
}
public void onWindowResized(int width, int height) {
setWidth(StringUtil.pixelToSize(width));
setHeight(StringUtil.pixelToSize(height));
}
public void setWidth(String width) {
super.setWidth(width);
if(adhocGrid != null) {
adhocGrid.getView().setWidth(width);
}
}
public void setHeight(String height) {
super.setHeight(height);
if(adhocGrid != null) {
int fullHeight = StringUtil.sizeToPixel(height);
int gridHeight = fullHeight - loadedReportLabel.getOffsetHeight()
- buttonsPanel.getOffsetHeight()
- frameLinks.getOffsetHeight();
if(gridHeight > 0) {
adhocGrid.getView().setOffsetHeight(gridHeight);
}
}
}
private class PrintCallback extends RPC.QAsyncCallback {
private String exportType;
private long processId;
private boolean printPage;
public PrintCallback(String exportType, long processId,
boolean printPage) {
this.exportType = exportType;
this.processId = processId;
this.printPage = printPage;
}
public void onRequestEnded(boolean success, Object result) {
if(success) {
JavaScriptObject printGridWindow = WindowHelper.openWindow(
"../getReport/response/" + exportType + "/"
+ processId + "?transletName=report");
if(printPage) {
WindowHelper.printWindow(printGridWindow);
}
}
}
}
private class SaveReportCallback extends RPC.QAsyncCallback {
public void onRequestEnded(boolean success, Object result) {
if(success) {
DialogHelper.showModalMessageDialog(
SUCCESSFULLY_SAVED_REPORT_MESSAGE);
}
}
}
private class SearchGridRecordsAsyncCallback extends RPC.QAsyncCallback {
public void onRequestEnded(boolean success, Object result) {
if(success) {
SearchGridRecordsResponseObject searchRes
= (SearchGridRecordsResponseObject) result;
QGridModel gridModel = adhocGrid.getModel();
gridModel.setGridData(searchRes.getGridData(),
searchRes.getTotalRecordsCount(),
searchRes.getCurrentPage());
}
}
}
private class LoadReportCallback extends RPC.QAsyncCallback {
public void onRequestEnded(boolean success, Object result) {
if(success) {
LoadReportResponseObject resp
= (LoadReportResponseObject) result;
if(!StringUtil.isStringEmpty(resp.getWarningMessage())) {
DialogHelper.showMessageDialog(
REPORT_MAY_BE_INCORRECT_WARNING
+ resp.getWarningMessage());
}
Events.REPORT_LOADED.setData(result);
getEventSource().fireEvent(Events.REPORT_LOADED);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -