List of usage examples for com.google.gwt.user.client.ui ListBox isMultipleSelect
public boolean isMultipleSelect()
From source file:com.qualogy.qafe.gwt.client.vo.handlers.BuiltinHandlerHelper.java
License:Apache License
private static Object getValue(ListBox listBox, boolean idValueOnly) { Object value = null;//from ww w. j av a 2s . c om if (!(listBox.isMultipleSelect()) && listBox.getSelectedIndex() != -1) { // dropdown int index = listBox.getSelectedIndex(); if (idValueOnly) { value = listBox.getValue(index); } else { DataMap dm = new DataMap(); dm.put("id", new DataContainerGVO(listBox.getValue(index))); dm.put("value", new DataContainerGVO(listBox.getItemText(index))); DataContainerGVO dtcMap = new DataContainerGVO(); dtcMap.setKind(DataContainerGVO.KIND_MAP); dtcMap.setDataMap(dm); value = dtcMap; // TODO: refactor, this is a workaround for checking simple // value dtcMap.setDataString(listBox.getValue(index)); } handleSimpleValue(listBox, value); } else if (listBox.getSelectedIndex() != -1) { DataContainerGVO dtclist = new DataContainerGVO(); dtclist.setKind(DataContainerGVO.KIND_COLLECTION); List<DataContainerGVO> list = new ArrayList<DataContainerGVO>(); dtclist.setListofDC(list); int items = listBox.getItemCount(); for (int itemIndex = 0; itemIndex < items; itemIndex++) { if (listBox.isItemSelected(itemIndex)) { DataMap dataMap = new DataMap(); DataContainerGVO dtcId = new DataContainerGVO(); dtcId.setKind(DataContainerGVO.KIND_STRING); dtcId.setDataString(listBox.getValue(itemIndex)); dtcId.setStringDataType(DataContainerGVO.TYPE_STRING); dataMap.put("id", dtcId); DataContainerGVO dtcValue = new DataContainerGVO(); dtcValue.setKind(DataContainerGVO.KIND_STRING); dtcValue.setDataString(listBox.getItemText(itemIndex)); dtcValue.setStringDataType(DataContainerGVO.TYPE_STRING); dataMap.put("value", dtcValue); list.add(new DataContainerGVO(dataMap)); } } value = dtclist; } return value; }
From source file:org.drools.workbench.screens.guided.dtable.client.widget.DTCellValueWidgetFactory.java
License:Apache License
private ListBox makeListBox(final DropDownData dd, final Pattern52 basePattern, final ConditionCol52 baseCondition, final DTCellValue52 dcv) { final boolean isMultipleSelect = isExplicitListOperator(baseCondition.getOperator()); final ListBox lb = makeListBox(dd, isMultipleSelect, dcv); // Wire up update handler lb.setEnabled(!isReadOnly);//from w ww .j a v a2 s. c o m if (!isReadOnly) { lb.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { String value = null; if (lb.isMultipleSelect()) { for (int i = 0; i < lb.getItemCount(); i++) { if (lb.isItemSelected(i)) { if (value == null) { value = lb.getValue(i); } else { value = value + "," + lb.getValue(i); } } } } else { int index = lb.getSelectedIndex(); if (index > -1) { //Set base column value value = lb.getValue(index); } } dcv.setStringValue(value); //Update any dependent enumerations final LimitedEntryDropDownManager.Context context = new LimitedEntryDropDownManager.Context( basePattern, baseCondition); Set<Integer> dependentColumnIndexes = dropDownManager.getDependentColumnIndexes(context); for (Integer iCol : dependentColumnIndexes) { BaseColumn column = model.getExpandedColumns().get(iCol); if (column instanceof LimitedEntryCol) { ((LimitedEntryCol) column).setValue(null); } else if (column instanceof DTColumnConfig52) { ((DTColumnConfig52) column).setDefaultValue(null); } } } }); } return lb; }
From source file:org.unitime.timetable.gwt.client.hql.SavedHQLPage.java
License:Apache License
public SavedHQLPage() { iAppearance = Window.Location.getParameter("appearance"); if ("courses".equalsIgnoreCase(iAppearance)) { UniTimePageLabel.getInstance().setPageName(MESSAGES.pageCourseReports()); } else if ("exams".equalsIgnoreCase(iAppearance)) { UniTimePageLabel.getInstance().setPageName(MESSAGES.pageExaminationReports()); } else if ("sectioning".equalsIgnoreCase(iAppearance)) { UniTimePageLabel.getInstance().setPageName(MESSAGES.pageStudentSectioningReports()); } else if ("events".equalsIgnoreCase(iAppearance)) { UniTimePageLabel.getInstance().setPageName(MESSAGES.pageEventReports()); } else if ("administration".equalsIgnoreCase(iAppearance)) { UniTimePageLabel.getInstance().setPageName(MESSAGES.pageAdministrationReports()); } else {/*from ww w. ja va 2 s . co m*/ iAppearance = "courses"; UniTimePageLabel.getInstance().setPageName(MESSAGES.pageCourseReports()); } iForm = new SimpleForm(2); iForm.removeStyleName("unitime-NotPrintableBottomLine"); iHeader = new UniTimeHeaderPanel(MESSAGES.sectFilter()); iHeader.addButton("execute", MESSAGES.buttonExecute(), 75, new ClickHandler() { @Override public void onClick(ClickEvent event) { iFirstLine = 0; iLastSort = 0; execute(); } }); iHeader.addButton("print", MESSAGES.buttonPrint(), 75, new ClickHandler() { @Override public void onClick(ClickEvent event) { HQLExecuteRpcRequest request = new HQLExecuteRpcRequest(); Long id = Long.valueOf( iQuerySelector.getWidget().getValue(iQuerySelector.getWidget().getSelectedIndex())); for (SavedHQLInterface.Query q : iQueries) { if (id.equals(q.getId())) { request.setQuery(q); break; } } if (request.getQuery() == null) { iHeader.setErrorMessage(MESSAGES.errorNoReportSelected()); return; } final SimpleForm form = new SimpleForm(); form.addHeaderRow(request.getQuery().getName()); if (!request.getQuery().getDescription().isEmpty()) form.addRow(MESSAGES.propDescription(), new HTML(request.getQuery().getDescription())); for (int i = 0; i < iOptions.size(); i++) { SavedHQLInterface.Option option = iOptions.get(i); if (request.getQuery().getQuery().contains("%" + option.getType() + "%")) { ListBox list = ((UniTimeWidget<ListBox>) iForm.getWidget(3 + i, 1)).getWidget(); String value = ""; String values = ""; boolean allSelected = true; if (list.isMultipleSelect()) { for (int j = 0; j < list.getItemCount(); j++) if (list.isItemSelected(j)) { if (!value.isEmpty()) { value += ","; values += ", "; } value += list.getValue(j); values += list.getItemText(j); } else { allSelected = false; } if (allSelected) values = MESSAGES.itemAll(); } else if (list.getSelectedIndex() > 0) { value = list.getValue(list.getSelectedIndex()); values = list.getItemText(list.getSelectedIndex()); } if (value.isEmpty()) { iHeader.setErrorMessage(MESSAGES.errorItemNotSelected(option.getName())); return; } request.addOption(option.getType(), value); form.addRow(option.getName() + ":", new Label(values, true)); } } LoadingWidget.getInstance().show(MESSAGES.waitExecuting(request.getQuery().getName())); request.setFromRow(0); request.setMaxRows(10000); RPC.execute(request, new AsyncCallback<Table>() { @Override public void onFailure(Throwable caught) { iTableHeader.setErrorMessage(caught.getMessage(), true); LoadingWidget.getInstance().hide(); } @Override public void onSuccess(Table result) { LoadingWidget.getInstance().hide(); if (result == null || result.size() <= 1) { iTableHeader.setMessage(MESSAGES.errorNoResults()); return; } final UniTimeTable<String[]> table = new UniTimeTable<String[]>(); String firstField = null; int nrCols = 0; for (int i = 0; i < result.size(); i++) { String[] row = result.get(i); List<Widget> line = new ArrayList<Widget>(); if (i == 0) { firstField = row[0]; nrCols = row.length; for (String x : row) { final String name = x.replace('_', ' ').trim(); UniTimeTableHeader h = new UniTimeTableHeader(name, 1); line.add(h); } } else { for (String x : row) { line.add(new HTML(x == null ? "" : x.replace("\\n", "<br>"))); } } table.addRow(i == 0 ? null : row, line); } if (firstField != null && firstField.startsWith("__")) table.setColumnVisible(0, false); if (iLastSort != 0 && Math.abs(iLastSort) <= nrCols) { table.sort(table.getHeader(Math.abs(iLastSort) - 1), new Comparator<String[]>() { @Override public int compare(String[] o1, String[] o2) { return SavedHQLPage.compare(o1, o2, Math.abs(iLastSort) - 1); } }, iLastSort > 0); } table.getElement().getStyle().setWidth(1040, Unit.PX); // Move header row to thead Element headerRow = table.getRowFormatter().getElement(0); Element tableElement = table.getElement(); Element thead = DOM.createTHead(); tableElement.insertFirst(thead); headerRow.getParentElement().removeChild(headerRow); thead.appendChild(headerRow); final Element div = DOM.createDiv(); div.appendChild(form.getElement()); div.appendChild(table.getElement()); String name = MESSAGES.pageCourseReports(); if ("courses".equalsIgnoreCase(iAppearance)) { name = MESSAGES.pageCourseReports(); } else if ("exams".equalsIgnoreCase(iAppearance)) { name = MESSAGES.pageExaminationReports(); } else if ("sectioning".equalsIgnoreCase(iAppearance)) { name = MESSAGES.pageStudentSectioningReports(); } else if ("events".equalsIgnoreCase(iAppearance)) { name = MESSAGES.pageEventReports(); } else if ("administration".equalsIgnoreCase(iAppearance)) { name = MESSAGES.pageAdministrationReports(); } final String pageName = name; ToolBox.print(new ToolBox.Page() { @Override public String getName() { return pageName; } @Override public String getUser() { return ""; } @Override public String getSession() { return ""; } @Override public Element getBody() { return div; } }); } }); } }); iHeader.addButton("export", MESSAGES.buttonExportCSV(), 85, new ClickHandler() { @Override public void onClick(ClickEvent event) { Long id = Long.valueOf( iQuerySelector.getWidget().getValue(iQuerySelector.getWidget().getSelectedIndex())); SavedHQLInterface.Query query = null; for (SavedHQLInterface.Query q : iQueries) { if (id.equals(q.getId())) { query = q; break; } } if (query == null) { iHeader.setErrorMessage(MESSAGES.errorNoReportSelected()); return; } String params = ""; for (int i = 0; i < iOptions.size(); i++) { SavedHQLInterface.Option option = iOptions.get(i); if (query.getQuery().contains("%" + option.getType() + "%")) { ListBox list = ((UniTimeWidget<ListBox>) iForm.getWidget(3 + i, 1)).getWidget(); String value = ""; boolean allSelected = true; if (list.isMultipleSelect()) { for (int j = 0; j < list.getItemCount(); j++) if (list.isItemSelected(j)) { if (!value.isEmpty()) value += ","; value += list.getValue(j); } else { allSelected = false; } } else if (list.getSelectedIndex() > 0) { value = list.getValue(list.getSelectedIndex()); } if (value.isEmpty()) { iHeader.setErrorMessage(MESSAGES.errorItemNotSelected(option.getName())); return; } if (!params.isEmpty()) params += ":"; params += (list.isMultipleSelect() && allSelected ? "" : value); } } String reportId = iQuerySelector.getWidget() .getValue(iQuerySelector.getWidget().getSelectedIndex()); RPC.execute(EncodeQueryRpcRequest.encode( "output=hql-report.csv&report=" + reportId + "¶ms=" + params + "&sort=" + iLastSort), new AsyncCallback<EncodeQueryRpcResponse>() { @Override public void onFailure(Throwable caught) { } @Override public void onSuccess(EncodeQueryRpcResponse result) { ToolBox.open(GWT.getHostPageBaseURL() + "export?q=" + result.getQuery()); } }); } }); iHeader.addButton("edit", MESSAGES.buttonEdit(), 75, new ClickHandler() { @Override public void onClick(ClickEvent event) { SavedHQLInterface.Query query = null; Long id = Long.valueOf( iQuerySelector.getWidget().getValue(iQuerySelector.getWidget().getSelectedIndex())); for (SavedHQLInterface.Query q : iQueries) { if (id.equals(q.getId())) { query = q; break; } } if (query == null) { iHeader.setErrorMessage(MESSAGES.errorNoReportSelected()); return; } openDialog(query); } }); iHeader.addButton("add", MESSAGES.buttonAddNew(), 75, new ClickHandler() { @Override public void onClick(ClickEvent event) { openDialog(null); } }); iForm.addHeaderRow(iHeader); iHeader.setEnabled("execute", false); iHeader.setEnabled("edit", false); iHeader.setEnabled("add", false); iHeader.setEnabled("print", false); iHeader.setEnabled("export", false); iForm.getColumnFormatter().setWidth(0, "120px"); iForm.getColumnFormatter().setWidth(1, "100%"); iQuerySelector = new UniTimeWidget<ListBox>(new ListBox()); iForm.addRow(MESSAGES.propReport(), iQuerySelector); iQuerySelector.getWidget().addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { iQuerySelector.clearHint(); iQuerySelector.setPrintText( iQuerySelector.getWidget().getItemText(iQuerySelector.getWidget().getSelectedIndex())); queryChanged(); } }); iDescription = new HTML(""); iForm.addRow(MESSAGES.propDescription(), iDescription); iForm.getCellFormatter().setVerticalAlignment(2, 0, HasVerticalAlignment.ALIGN_TOP); LoadingWidget.getInstance().show(MESSAGES.waitLoadingReports()); RPC.execute(new HQLOptionsRpcRequest(), new AsyncCallback<HQLOptionsInterface>() { @Override public void onFailure(Throwable caught) { iHeader.setErrorMessage(caught.getMessage()); LoadingWidget.getInstance().hide(); ToolBox.checkAccess(caught); } @Override public void onSuccess(HQLOptionsInterface result) { iFlags = result.getFlags(); iOptions = result.getOptions(); iHeader.setEnabled("add", result.isEditable()); for (int i = 0; i < iOptions.size(); i++) { SavedHQLInterface.Option option = iOptions.get(i); ListBox list = new ListBox(); list.setMultipleSelect(option.isMultiSelect()); if (!option.isMultiSelect()) list.addItem(MESSAGES.itemSelect(), "-1"); for (SavedHQLInterface.IdValue v : option.values()) list.addItem(v.getText(), v.getValue()); final UniTimeWidget<ListBox> u = new UniTimeWidget<ListBox>(list); iForm.addRow(option.getName() + ":", u); iForm.getCellFormatter().setVerticalAlignment(3 + i, 0, HasVerticalAlignment.ALIGN_TOP); iForm.getRowFormatter().setVisible(3 + i, false); if (list.isMultipleSelect()) { for (int j = 0; j < list.getItemCount(); j++) list.setItemSelected(j, true); u.setPrintText(MESSAGES.itemAll()); } else if (list.getItemCount() == 2) { list.setSelectedIndex(1); u.setPrintText(list.getItemText(1)); } list.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { u.clearHint(); String selected = ""; boolean hasAll = true; for (int i = 0; i < u.getWidget().getItemCount(); i++) { if (u.getWidget().isItemSelected(i)) { if (!selected.isEmpty()) selected += ","; selected += u.getWidget().getItemText(i); } else hasAll = false; } if (hasAll && u.getWidget().getItemCount() > 5) selected = MESSAGES.itemAll(); if (selected.length() > 150) selected = selected.substring(0, 147) + "..."; u.setPrintText(selected); iHeader.clearMessage(); } }); } iTableHeader = new UniTimeHeaderPanel(MESSAGES.sectResults()); iTableHeader.addButton("previous", MESSAGES.buttonPrevious(), 75, new ClickHandler() { @Override public void onClick(ClickEvent event) { iFirstLine -= 100; execute(); } }); iTableHeader.addButton("next", MESSAGES.buttonNext(), 75, new ClickHandler() { @Override public void onClick(ClickEvent event) { iFirstLine += 100; execute(); } }); iTableHeader.setEnabled("previous", false); iTableHeader.setEnabled("next", false); iForm.addHeaderRow(iTableHeader); iForm.addRow(iTable); iForm.addBottomRow(iHeader.clonePanel("")); loadQueries(null, true); } }); iTable.addMouseClickListener(new UniTimeTable.MouseClickListener<String[]>() { @Override public void onMouseClick(UniTimeTable.TableEvent<String[]> event) { if (event.getRow() > 0 && event.getData() != null) { if ("__Class".equals(iFirstField)) ToolBox.open(GWT.getHostPageBaseURL() + "classDetail.do?cid=" + event.getData()[0]); else if ("__Offering".equals(iFirstField)) ToolBox.open(GWT.getHostPageBaseURL() + "instructionalOfferingDetail.do?op=view&io=" + event.getData()[0]); else if ("__Subpart".equals(iFirstField)) ToolBox.open(GWT.getHostPageBaseURL() + "schedulingSubpartDetail.do?ssuid=" + event.getData()[0]); else if ("__Room".equals(iFirstField)) ToolBox.open( GWT.getHostPageBaseURL() + "gwt.jsp?page=rooms&back=1&id=" + event.getData()[0]); else if ("__Instructor".equals(iFirstField)) ToolBox.open(GWT.getHostPageBaseURL() + "instructorDetail.do?instructorId=" + event.getData()[0]); else if ("__Exam".equals(iFirstField)) ToolBox.open(GWT.getHostPageBaseURL() + "examDetail.do?examId=" + event.getData()[0]); else if ("__Event".equals(iFirstField)) ToolBox.open(GWT.getHostPageBaseURL() + "gwt.jsp?page=events#event=" + event.getData()[0]); } } }); initWidget(iForm); History.addValueChangeHandler(new ValueChangeHandler<String>() { @Override public void onValueChange(ValueChangeEvent<String> event) { reload(event.getValue()); } }); }
From source file:org.unitime.timetable.gwt.client.hql.SavedHQLPage.java
License:Apache License
public void reload(String history) { if (history == null) return;/*from w w w.j a v a2s. com*/ if (history.indexOf('&') >= 0) history = history.substring(0, history.indexOf('&')); if (history.isEmpty()) return; String[] params = history.split(":"); Long id = Long.valueOf(params[0]); SavedHQLInterface.Query query = null; for (int i = 0; i < iQueries.size(); i++) { SavedHQLInterface.Query q = iQueries.get(i); if (id.equals(q.getId())) { query = q; iQuerySelector.getWidget().setSelectedIndex(1 + i); queryChanged(); break; } } if (query == null) return; int idx = 1; for (int i = 0; i < iOptions.size(); i++) { SavedHQLInterface.Option option = iOptions.get(i); if (query.getQuery().contains("%" + option.getType() + "%")) { String param = params[idx++]; if (param == null || param.isEmpty()) continue; ListBox list = ((UniTimeWidget<ListBox>) iForm.getWidget(3 + i, 1)).getWidget(); if (list.isMultipleSelect()) { for (int j = 0; j < list.getItemCount(); j++) { String value = list.getValue(j); boolean contains = false; for (String o : param.split(",")) if (o.equals(value)) { contains = true; break; } list.setItemSelected(j, contains); } } else { for (int j = 1; j < list.getItemCount(); j++) { if (list.getValue(j).equals(param)) { list.setSelectedIndex(j); break; } } } } } iFirstLine = Integer.parseInt(params[idx++]); iLastSort = Integer.parseInt(params[idx++]); execute(); }
From source file:org.unitime.timetable.gwt.client.hql.SavedHQLPage.java
License:Apache License
private void execute() { HQLExecuteRpcRequest request = new HQLExecuteRpcRequest(); iHeader.setEnabled("print", false); iHeader.setEnabled("export", false); Long id = Long.valueOf(iQuerySelector.getWidget().getValue(iQuerySelector.getWidget().getSelectedIndex())); for (SavedHQLInterface.Query q : iQueries) { if (id.equals(q.getId())) { request.setQuery(q);//from ww w. ja v a 2s . c o m break; } } if (request.getQuery() == null) { iHeader.setErrorMessage(MESSAGES.errorNoReportSelected()); return; } iLastHistory = request.getQuery().getId().toString(); for (int i = 0; i < iOptions.size(); i++) { SavedHQLInterface.Option option = iOptions.get(i); if (request.getQuery().getQuery().contains("%" + option.getType() + "%")) { SavedHQLInterface.IdValue o = new SavedHQLInterface.IdValue(); o.setValue(option.getType()); ListBox list = ((UniTimeWidget<ListBox>) iForm.getWidget(3 + i, 1)).getWidget(); String value = ""; boolean allSelected = true; if (list.isMultipleSelect()) { for (int j = 0; j < list.getItemCount(); j++) if (list.isItemSelected(j)) { if (!value.isEmpty()) value += ","; value += list.getValue(j); } else { allSelected = false; } } else if (list.getSelectedIndex() > 0) { value = list.getValue(list.getSelectedIndex()); } if (value.isEmpty()) { iHeader.setErrorMessage(MESSAGES.errorItemNotSelected(option.getName())); return; } request.addOption(option.getType(), value); iLastHistory += ":" + (list.isMultipleSelect() && allSelected ? "" : value); } } iTable.clearTable(); iFirstField = null; iTableHeader.clearMessage(); iHeader.clearMessage(); LoadingWidget.getInstance().show(MESSAGES.waitExecuting(request.getQuery().getName())); History.newItem(iLastHistory + ":" + iFirstLine + ":" + iLastSort, false); request.setFromRow(iFirstLine); request.setMaxRows(101); RPC.execute(request, new AsyncCallback<Table>() { @Override public void onFailure(Throwable caught) { iTableHeader.setErrorMessage(caught.getMessage(), true); LoadingWidget.getInstance().hide(); } @Override public void onSuccess(Table result) { populate(result); LoadingWidget.getInstance().hide(); } }); }
From source file:org.unitime.timetable.gwt.client.pointintimedata.PointInTimeDataReportsPage.java
License:Apache License
public PointInTimeDataReportsPage() { UniTimePageLabel.getInstance().setPageName(MESSAGES.pagePointInTimeDataReports()); iForm = new SimpleForm(2); iForm.removeStyleName("unitime-NotPrintableBottomLine"); iHeader = new UniTimeHeaderPanel(MESSAGES.sectFilter()); iHeader.addButton("execute", MESSAGES.buttonExecute(), 75, new ClickHandler() { @Override// ww w . j a v a 2 s. c o m public void onClick(ClickEvent event) { iLastSort = 0; execute(); } }); iHeader.addButton("print", MESSAGES.buttonPrint(), 75, new ClickHandler() { @Override public void onClick(ClickEvent event) { PITDExecuteRpcRequest request = new PITDExecuteRpcRequest(); String id = iReportSelector.getWidget().getValue(iReportSelector.getWidget().getSelectedIndex()); for (PointInTimeDataReportsInterface.Report q : iReports) { if (id.equals(q.getId())) { request.setReport(q); break; } } if (request.getReport() == null) { iHeader.setErrorMessage(MESSAGES.errorNoReportSelected()); return; } final SimpleForm form = new SimpleForm(); form.addHeaderRow(request.getReport().getName()); if (!request.getReport().getDescription().isEmpty()) form.addRow(MESSAGES.propDescription(), new HTML(request.getReport().getDescription())); for (int i = 0; i < iParameters.size(); i++) { PointInTimeDataReportsInterface.Parameter parameter = iParameters.get(i); if (request.getReport().parametersContain(parameter.getType())) { if (parameter.isTextField()) { TextBox textBox = ((UniTimeWidget<TextBox>) iForm.getWidget(3 + i, 1)).getWidget(); String value = textBox.getText(); if (value.isEmpty()) { iHeader.setErrorMessage(MESSAGES.errorItemNotSelected(parameter.getName())); return; } request.addParameter(parameter.getType(), value); form.addRow(parameter.getName() + ":", new Label(value, true)); } else { ListBox list = ((UniTimeWidget<ListBox>) iForm.getWidget(3 + i, 1)).getWidget(); String value = ""; String values = ""; boolean allSelected = true; if (list.isMultipleSelect()) { for (int j = 0; j < list.getItemCount(); j++) if (list.isItemSelected(j)) { if (!value.isEmpty()) { value += ","; values += ", "; } value += list.getValue(j); values += list.getItemText(j); } else { allSelected = false; } if (allSelected) values = MESSAGES.itemAll(); } else if (list.getSelectedIndex() > 0) { value = list.getValue(list.getSelectedIndex()); values = list.getItemText(list.getSelectedIndex()); } if (value.isEmpty()) { iHeader.setErrorMessage(MESSAGES.errorItemNotSelected(parameter.getName())); return; } request.addParameter(parameter.getType(), value); form.addRow(parameter.getName() + ":", new Label(values, true)); } } } LoadingWidget.getInstance().show(MESSAGES.waitExecuting(request.getReport().getName())); RPC.execute(request, new AsyncCallback<Table>() { @Override public void onFailure(Throwable caught) { iTableHeader.setErrorMessage(caught.getMessage()); LoadingWidget.getInstance().hide(); } @Override public void onSuccess(Table result) { LoadingWidget.getInstance().hide(); if (result == null || result.size() <= 1) { iTableHeader.setMessage(MESSAGES.errorNoResults()); return; } final UniTimeTable<String[]> table = new UniTimeTable<String[]>(); String firstField = null; int nrCols = 0; for (int i = 0; i < result.size(); i++) { String[] row = result.get(i); List<Widget> line = new ArrayList<Widget>(); if (i == 0) { firstField = row[0]; nrCols = row.length; for (String x : row) { final String name = x.replace('_', ' ').trim(); UniTimeTableHeader h = new UniTimeTableHeader(name, 1); line.add(h); } } else { for (String x : row) { line.add(new HTML(x == null ? "" : x.replace("\\n", "<br>"))); } } table.addRow(i == 0 ? null : row, line); } if (firstField != null && firstField.startsWith("__")) table.setColumnVisible(0, false); if (iLastSort != 0 && Math.abs(iLastSort) <= nrCols) { table.sort(table.getHeader(Math.abs(iLastSort) - 1), new Comparator<String[]>() { @Override public int compare(String[] o1, String[] o2) { return PointInTimeDataReportsPage.compare(o1, o2, Math.abs(iLastSort) - 1); } }, iLastSort > 0); } table.getElement().getStyle().setWidth(1040, Unit.PX); // Move header row to thead Element headerRow = table.getRowFormatter().getElement(0); Element tableElement = table.getElement(); Element thead = DOM.createTHead(); tableElement.insertFirst(thead); headerRow.getParentElement().removeChild(headerRow); thead.appendChild(headerRow); final Element div = DOM.createDiv(); div.appendChild(form.getElement()); div.appendChild(table.getElement()); String name = MESSAGES.pagePointInTimeDataReports(); final String pageName = name; ToolBox.print(new ToolBox.Page() { @Override public String getName() { return pageName; } @Override public String getUser() { return ""; } @Override public String getSession() { return ""; } @Override public Element getBody() { return div; } }); } }); } }); iHeader.addButton("export", MESSAGES.buttonExportCSV(), 85, new ClickHandler() { @Override public void onClick(ClickEvent event) { String id = iReportSelector.getWidget().getValue(iReportSelector.getWidget().getSelectedIndex()); PointInTimeDataReportsInterface.Report query = null; for (PointInTimeDataReportsInterface.Report q : iReports) { if (id.equals(q.getId())) { query = q; break; } } if (query == null) { iHeader.setErrorMessage(MESSAGES.errorNoReportSelected()); return; } String params = ""; for (int i = 0; i < iParameters.size(); i++) { PointInTimeDataReportsInterface.Parameter parameter = iParameters.get(i); if (query.parametersContain(parameter.getType())) { if (parameter.isTextField()) { TextBox textBox = ((UniTimeWidget<TextBox>) iForm.getWidget(3 + i, 1)).getWidget(); String value = textBox.getText(); if (value.isEmpty()) { iHeader.setErrorMessage(MESSAGES.errorItemNotSelected(parameter.getName())); return; } if (!params.isEmpty()) params += ":"; params += (value == null ? "" : value); } else { ListBox list = ((UniTimeWidget<ListBox>) iForm.getWidget(3 + i, 1)).getWidget(); String value = ""; boolean allSelected = true; if (list.isMultipleSelect()) { for (int j = 0; j < list.getItemCount(); j++) if (list.isItemSelected(j)) { if (!value.isEmpty()) value += ","; value += list.getValue(j); } else { allSelected = false; } } else if (list.getSelectedIndex() > 0) { value = list.getValue(list.getSelectedIndex()); } if (value.isEmpty()) { iHeader.setErrorMessage(MESSAGES.errorItemNotSelected(parameter.getName())); return; } if (!params.isEmpty()) params += ":"; params += (list.isMultipleSelect() && allSelected ? "" : value); } } } String reportId = iReportSelector.getWidget() .getValue(iReportSelector.getWidget().getSelectedIndex()); RPC.execute(EncodeQueryRpcRequest.encode( "output=pitd-report.csv&report=" + reportId + "¶ms=" + params + "&sort=" + iLastSort), new AsyncCallback<EncodeQueryRpcResponse>() { @Override public void onFailure(Throwable caught) { } @Override public void onSuccess(EncodeQueryRpcResponse result) { ToolBox.open(GWT.getHostPageBaseURL() + "export?q=" + result.getQuery()); } }); } }); iForm.addHeaderRow(iHeader); iHeader.setEnabled("execute", false); iHeader.setEnabled("print", false); iHeader.setEnabled("export", false); iForm.getColumnFormatter().setWidth(0, "120px"); iForm.getColumnFormatter().setWidth(1, "100%"); iReportSelector = new UniTimeWidget<ListBox>(new ListBox()); iForm.addRow(MESSAGES.propReport(), iReportSelector); iReportSelector.getWidget().addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { iReportSelector.clearHint(); iReportSelector.setPrintText( iReportSelector.getWidget().getItemText(iReportSelector.getWidget().getSelectedIndex())); queryChanged(); } }); iDescription = new HTML(""); iForm.addRow(MESSAGES.propDescription(), iDescription); iForm.getCellFormatter().setVerticalAlignment(2, 0, HasVerticalAlignment.ALIGN_TOP); LoadingWidget.getInstance().show(MESSAGES.waitLoadingReports()); RPC.execute(new PITDParametersRpcRequest(), new AsyncCallback<PITDParametersInterface>() { @Override public void onFailure(Throwable caught) { iHeader.setErrorMessage(caught.getMessage()); LoadingWidget.getInstance().hide(); ToolBox.checkAccess(caught); } @Override public void onSuccess(PITDParametersInterface result) { iParameters = result.getParameters(); for (int i = 0; i < iParameters.size(); i++) { PointInTimeDataReportsInterface.Parameter parameter = iParameters.get(i); if (parameter.isTextField()) { TextBox text = new TextBox(); if (parameter.getDefaultTextValue() != null) { text.setText(parameter.getDefaultTextValue()); text.setValue(parameter.getDefaultTextValue()); } final UniTimeWidget<TextBox> u = new UniTimeWidget<TextBox>(text); iForm.addRow(parameter.getName() + ":", u); iForm.getCellFormatter().setVerticalAlignment(3 + i, 0, HasVerticalAlignment.ALIGN_TOP); iForm.getRowFormatter().setVisible(3 + i, false); u.setPrintText(text.getValue()); text.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { u.clearHint(); String entered = u.getWidget().getValue(); u.setPrintText(entered); iHeader.clearMessage(); } }); } else { ListBox list = new ListBox(); list.setMultipleSelect(parameter.isMultiSelect()); if (!parameter.isMultiSelect()) list.addItem(MESSAGES.itemSelect(), "-1"); for (PointInTimeDataReportsInterface.IdValue v : parameter.values()) list.addItem(v.getText(), v.getValue()); final UniTimeWidget<ListBox> u = new UniTimeWidget<ListBox>(list); iForm.addRow(parameter.getName() + ":", u); iForm.getCellFormatter().setVerticalAlignment(3 + i, 0, HasVerticalAlignment.ALIGN_TOP); iForm.getRowFormatter().setVisible(3 + i, false); if (list.isMultipleSelect()) { for (int j = 0; j < list.getItemCount(); j++) list.setItemSelected(j, true); u.setPrintText(MESSAGES.itemAll()); } else if (list.getItemCount() == 2) { list.setSelectedIndex(1); u.setPrintText(list.getItemText(1)); } list.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { u.clearHint(); String selected = ""; boolean hasAll = true; for (int i = 0; i < u.getWidget().getItemCount(); i++) { if (u.getWidget().isItemSelected(i)) { if (!selected.isEmpty()) selected += ","; selected += u.getWidget().getItemText(i); } else hasAll = false; } if (hasAll && u.getWidget().getItemCount() > 5) selected = MESSAGES.itemAll(); if (selected.length() > 150) selected = selected.substring(0, 147) + "..."; u.setPrintText(selected); iHeader.clearMessage(); } }); } } iTableHeader = new UniTimeHeaderPanel(MESSAGES.sectResults()); iForm.addHeaderRow(iTableHeader); iForm.addRow(iTable); iForm.addBottomRow(iHeader.clonePanel("")); loadQueries(null, true); } }); iTable.addMouseClickListener(new UniTimeTable.MouseClickListener<String[]>() { @Override public void onMouseClick(UniTimeTable.TableEvent<String[]> event) { if (event.getRow() > 0 && event.getData() != null) { if ("__Class".equals(iFirstField)) ToolBox.open(GWT.getHostPageBaseURL() + "classDetail.do?cid=" + event.getData()[0]); else if ("__Offering".equals(iFirstField)) ToolBox.open(GWT.getHostPageBaseURL() + "instructionalOfferingDetail.do?op=view&io=" + event.getData()[0]); else if ("__Subpart".equals(iFirstField)) ToolBox.open(GWT.getHostPageBaseURL() + "schedulingSubpartDetail.do?ssuid=" + event.getData()[0]); else if ("__Room".equals(iFirstField)) ToolBox.open( GWT.getHostPageBaseURL() + "gwt.jsp?page=rooms&back=1&id=" + event.getData()[0]); else if ("__Instructor".equals(iFirstField)) ToolBox.open(GWT.getHostPageBaseURL() + "instructorDetail.do?instructorId=" + event.getData()[0]); else if ("__Exam".equals(iFirstField)) ToolBox.open(GWT.getHostPageBaseURL() + "examDetail.do?examId=" + event.getData()[0]); else if ("__Event".equals(iFirstField)) ToolBox.open(GWT.getHostPageBaseURL() + "gwt.jsp?page=events#event=" + event.getData()[0]); } } }); initWidget(iForm); History.addValueChangeHandler(new ValueChangeHandler<String>() { @Override public void onValueChange(ValueChangeEvent<String> event) { reload(event.getValue()); } }); }
From source file:org.unitime.timetable.gwt.client.pointintimedata.PointInTimeDataReportsPage.java
License:Apache License
public void reload(String history) { if (history == null) return;/*ww w. j a va2s . co m*/ if (history.indexOf('&') >= 0) history = history.substring(0, history.indexOf('&')); if (history.isEmpty()) return; String[] params = history.split(":"); String id = params[0]; PointInTimeDataReportsInterface.Report rpt = null; for (int i = 0; i < iReports.size(); i++) { PointInTimeDataReportsInterface.Report q = iReports.get(i); if (id.equals(q.getId())) { rpt = q; iReportSelector.getWidget().setSelectedIndex(1 + i); queryChanged(); break; } } if (rpt == null) return; int idx = 1; for (int i = 0; i < iParameters.size(); i++) { PointInTimeDataReportsInterface.Parameter parameter = iParameters.get(i); if (rpt.parametersContain(parameter.getType())) { String param = params[idx++]; if (param == null || param.isEmpty()) continue; if (parameter.isTextField()) { TextBox text = ((UniTimeWidget<TextBox>) iForm.getWidget(3 + i, 1)).getWidget(); text.setText(param); } else { ListBox list = ((UniTimeWidget<ListBox>) iForm.getWidget(3 + i, 1)).getWidget(); if (list.isMultipleSelect()) { for (int j = 0; j < list.getItemCount(); j++) { String value = list.getValue(j); boolean contains = false; for (String o : param.split(",")) if (o.equals(value)) { contains = true; break; } list.setItemSelected(j, contains); } } else { for (int j = 1; j < list.getItemCount(); j++) { if (list.getValue(j).equals(param)) { list.setSelectedIndex(j); break; } } } } } } iLastSort = Integer.parseInt(params[idx++]); execute(); }
From source file:org.unitime.timetable.gwt.client.pointintimedata.PointInTimeDataReportsPage.java
License:Apache License
private void execute() { PITDExecuteRpcRequest request = new PITDExecuteRpcRequest(); iHeader.setEnabled("print", false); iHeader.setEnabled("export", false); String id = iReportSelector.getWidget().getValue(iReportSelector.getWidget().getSelectedIndex()); for (PointInTimeDataReportsInterface.Report r : iReports) { if (id.equals(r.getId())) { request.setReport(r);/*from www . java 2 s . co m*/ break; } } if (request.getReport() == null) { iHeader.setErrorMessage(MESSAGES.errorNoReportSelected()); return; } iLastHistory = request.getReport().getId().toString(); for (int i = 0; i < iParameters.size(); i++) { PointInTimeDataReportsInterface.Parameter parameter = iParameters.get(i); if (request.getReport().parametersContain(parameter.getType())) { if (parameter.isTextField()) { TextBox textBox = ((UniTimeWidget<TextBox>) iForm.getWidget(3 + i, 1)).getWidget(); String value = textBox.getText(); if (value.isEmpty()) { iHeader.setErrorMessage(MESSAGES.errorItemNotSelected(parameter.getName())); return; } request.addParameter(parameter.getType(), value); iLastHistory += ":" + (value == null ? "" : value); } else { PointInTimeDataReportsInterface.IdValue o = new PointInTimeDataReportsInterface.IdValue(); o.setValue(parameter.getType()); ListBox list = ((UniTimeWidget<ListBox>) iForm.getWidget(3 + i, 1)).getWidget(); String value = ""; boolean allSelected = true; if (list.isMultipleSelect()) { for (int j = 0; j < list.getItemCount(); j++) if (list.isItemSelected(j)) { if (!value.isEmpty()) value += ","; value += list.getValue(j); } else { allSelected = false; } } else if (list.getSelectedIndex() > 0) { value = list.getValue(list.getSelectedIndex()); } if (value.isEmpty()) { iHeader.setErrorMessage(MESSAGES.errorItemNotSelected(parameter.getName())); return; } request.addParameter(parameter.getType(), value); iLastHistory += ":" + (list.isMultipleSelect() && allSelected ? "" : value); } } } iTable.clearTable(); iFirstField = null; iTableHeader.clearMessage(); iHeader.clearMessage(); LoadingWidget.getInstance().show(MESSAGES.waitExecuting(request.getReport().getName())); History.newItem(iLastHistory + ":" + iLastSort, false); RPC.execute(request, new AsyncCallback<Table>() { @Override public void onFailure(Throwable caught) { iTableHeader.setErrorMessage(caught.getMessage()); LoadingWidget.getInstance().hide(); } @Override public void onSuccess(Table result) { populate(result); LoadingWidget.getInstance().hide(); } }); }