List of usage examples for com.jgoodies.forms.layout CellConstraints xywh
public CellConstraints xywh(int col, int row, int colSpan, int rowSpan)
Examples:
cc.xywh(1, 3, 2, 1); cc.xywh(1, 3, 7, 3);
From source file:edu.ku.brc.specify.tasks.subpane.security.IndvPanelPermEditor.java
License:Open Source License
/** * @param panelNameKey//from ww w .java2 s . c o m * @param descKey * @param enumerator * @param listener * @param readOnly */ public IndvPanelPermEditor(final String panelNameKey, final String descKey, final PermissionEnumerator enumerator, final ChangeListener listener, final boolean readOnly) { super(new BorderLayout()); this.panelName = UIRegistry.getResourceString(panelNameKey); this.enumerator = enumerator; this.principal = null; this.listener = listener; this.readOnly = readOnly; if (doAddTableEditor) { tblEnumerator = new TablePermissionEnumerator(); tblEnumerator.setTableIds(new int[] {}); tableEditor = new PermissionEditor("SEC_TABLES", tblEnumerator, listener); tableEditor.setVisible(false); } list = new JList(model); JScrollPane sp = UIHelper.createScrollPane(list); list.setCellRenderer(new PermWrapperRenderer()); mainPanel = new JPanel(new BorderLayout()); PanelBuilder pb = new PanelBuilder(new FormLayout("p,10px,p:g,5px,p,5px,f:p:g", "p,2px,f:p:g"), this); CellConstraints cc = new CellConstraints(); pb.add(UIHelper.createI18NLabel(descKey, SwingConstants.CENTER), cc.xy(1, 1)); pb.add(sp, cc.xy(1, 3)); pb.add(mainPanel, cc.xywh(3, 1, 1, 3)); // This needs a little work for saving and refreshing // I am disabling it for now if (doAddTableEditor) { pb.add(new VerticalSeparator(new Color(224, 224, 224), new Color(124, 124, 124)), cc.xywh(5, 1, 1, 3)); pb.add(tableEditor, cc.xy(7, 3)); } //basicEditor.addChangeListener(listener); list.addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { if (!e.getValueIsAdjusting()) { if (editor != null) { editor.removeChangeListener(listener); mainPanel.remove(editor.getUIComponent()); if (editor.hasChanged() && prevRowData != null) { prevRowData.setPermissions(editor.getPermissions()); editor.setChanged(false); } } PermissionEditorRowIFace rowData = (PermissionEditorRowIFace) list.getSelectedValue(); if (rowData != null) { editor = rowData.getEditorPanel(); if (editor == null) { editor = basicEditor; } for (int i = 1; i < 9; i *= 2) { editor.setOverrideText(i, rowData.getOverrideText(i), readOnly); } editor.setTitle(rowData.getTitle()); editor.setPermissions(rowData.getPermissions()); if (doAddTableEditor) { int[] tableIds = editor.getAssociatedTableIds(); if (tableIds != null && tableIds.length > 0) { tblEnumerator.setTableIds(tableIds); tableEditor.setVisible(true); if (tableEditor != null && principal != null) { tableEditor.updateData(principal, overrulingPrincipal, existingPerms, overrulingPerms, userType); } } else { tableEditor.setVisible(false); } } mainPanel.add(editor.getUIComponent(), BorderLayout.CENTER); mainPanel.invalidate(); mainPanel.validate(); mainPanel.repaint(); } prevRowData = rowData; editor.addChangeListener(listener); } } }); }
From source file:edu.ku.brc.specify.tasks.subpane.wb.EditFormControlDlg.java
License:Open Source License
@Override public void createUI() { if (xCoord == null) { super.createUI(); isTextField = inputPanel.getComp() instanceof JTextComponent; isFormattedText = inputPanel.getComp() instanceof ValFormattedTextField; int y = 1; CellConstraints cc = new CellConstraints(); PanelBuilder panelBlder = new PanelBuilder(new FormLayout("p,2px,p,p:g", UIHelper .createDuplicateJGoodiesDef("p", "2px", 8 + (isTextField && !isFormattedText ? 4 : 0)))); JPanel panel = panelBlder.getPanel(); Dimension canvasSize = formPane.getSize(); Dimension controlSize = inputPanel.getSize(); panelBlder.add(createI18NFormLabel("WB_X"), cc.xy(1, y)); panelBlder.add(xCoord = new ValSpinner(0, canvasSize.width - controlSize.width, false, false), cc.xy(3, y));// ww w.j av a2s . c om y += 2; panelBlder.add(createI18NFormLabel("WB_Y"), cc.xy(1, y)); panelBlder.add(yCoord = new ValSpinner(0, canvasSize.height - controlSize.height, false, false), cc.xy(3, y)); y += 2; panelBlder.add(createI18NFormLabel("WB_LABEL"), cc.xy(1, y)); panelBlder.add(labelTF = createTextField(25), cc.xywh(3, y, 2, 1)); y += 2; if (isTextField) { panelBlder.add(createI18NFormLabel("WB_FIELD_LEN"), cc.xy(1, y)); panelBlder.add(fieldWidth = new ValSpinner(0, 100, false, false), cc.xy(3, y)); y += 2; if (!isFormattedText) { panelBlder.add(rowsLabels = createI18NFormLabel("WB_NUM_ROWS"), cc.xy(1, y)); panelBlder.add(numRows = new ValSpinner(1, 25, false, false), cc.xy(3, y)); y += 2; panelBlder.add(typeLabel = createI18NFormLabel("WB_FIELD_TYPE"), cc.xy(1, y)); panelBlder.add(textFieldType = createComboBox( new Object[] { getResourceString("WB_TEXTFIELD"), getResourceString("WB_TEXTAREA") }), cc.xy(3, y)); setControlSize(textFieldType); y += 2; } } fill(); if (fieldWidth != null) { origFieldLen = ((Integer) fieldWidth.getValue()).shortValue(); } if (textFieldType != null) { origFieldTypeIndex = textFieldType.getSelectedIndex(); } if (numRows != null) { origRows = ((Integer) numRows.getValue()).shortValue(); origFieldType = inputPanel.getWbtmi().getFieldType(); numRows.addChangeListener(this); } xCoord.addChangeListener(this); yCoord.addChangeListener(this); if (isTextField) { fieldWidth.addChangeListener(this); } if (textFieldType != null) { textFieldType.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { fieldTypeChanged = textFieldType.getSelectedIndex() != fieldTypeIndex; if (numRows != null) { adjustTextRowsUI(); numRows.setValue(textFieldType.getSelectedIndex() == 0 ? FormPane.DEFAULT_TEXTFIELD_ROWS : (origRows == 1 ? FormPane.DEFAULT_TEXTAREA_ROWS : origRows)); } } }); } labelTF.getDocument().addDocumentListener(this); mainPanel.add(panel, BorderLayout.CENTER); pack(); } }
From source file:edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadMainPanel.java
License:Open Source License
/** * Hides the validation error msg list./*from w w w.j a v a 2 s.co m*/ */ protected void hideValidationErrors() { CellConstraints cc = new CellConstraints(); msgPane.remove(validationErrorPanel); msgPane.remove(msgListSB); msgPane.add(msgListSB, cc.xywh(1, 1, 1, 2)); msgPane.validate(); }
From source file:edu.ku.brc.specify.tasks.subpane.wb.wbuploader.UploadMainPanel.java
License:Open Source License
public void buildUI() { CellConstraints cc = new CellConstraints(); setLayout(new FormLayout( "3dlu:none, fill:50dlu:grow(0.30), 20dlu:none, fill:50dlu:grow(0.70), 5dlu:none, r:max(50dlu;pref), 3dlu:none", "2dlu:none, fill:m:none, 4dlu:none, t:m:none, 2dlu:none, fill:75dlu:grow, 5dlu:none")); JLabel title = createLabel(getResourceString("WB_UPLOAD_FORM_TITLE")); title.setFont(title.getFont().deriveFont(Font.BOLD)); title.setHorizontalAlignment(SwingConstants.LEFT); add(title, cc.xywh(2, 2, 5, 1)); JPanel pPane = new JPanel(new FormLayout("fill:pref:grow, fill:pref:none", "center:m:grow")); currOpProgress = createProgressBar(); pPane.add(currOpProgress, cc.xy(1, 1)); cancelBtn = createButton(getResourceString("WB_UPLOAD_CANCEL")); cancelBtn.setActionCommand(CANCEL_OPERATION); pPane.add(cancelBtn, cc.xy(2, 1));/*from w ww. j a v a 2 s .c o m*/ add(pPane, cc.xywh(4, 2, 3, 1)); add(new JSeparator(SwingConstants.HORIZONTAL), cc.xywh(2, 3, 5, 1)); uploadTblLbl = createLabel(getResourceString("WB_UPLOAD_AFFECTED_TBLS_LIST")); add(uploadTblLbl, cc.xy(2, 4)); uploadTblPanel = new JPanel(new CardLayout()); uploadTbls = new JList(); JScrollPane sp = new JScrollPane(uploadTbls, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); uploadTblPanel.add(sp, "list"); uploadTblTbl = new JTable() { @Override public boolean isCellEditable(int row, int column) { return false; } }; uploadTblTbl.setCellSelectionEnabled(false); sp = new JScrollPane(uploadTblTbl, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); uploadTblPanel.add(sp, "table"); add(uploadTblPanel, cc.xy(2, 6)); msgPane = new JPanel(new FormLayout("fill:m:grow", "fill:pref:grow, fill:m:grow")); msgLbl = createLabel(getResourceString("WB_UPLOAD_MSG_LIST")); add(msgLbl, cc.xy(4, 4)); msgList = new JList(new DefaultListModel()) { /* (non-Javadoc) * @see javax.swing.JList#getToolTipText(java.awt.event.MouseEvent) */ @Override public String getToolTipText(MouseEvent event) { //Get the mouse location java.awt.Point point = event.getPoint(); //Get the item in the list box at the mouse location int index = this.locationToIndex(point); //Get the value of the item in the list return this.getModel().getElementAt(index).toString(); } }; msgListSB = new JScrollPane(msgList, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); msgPane.add(msgListSB, cc.xywh(1, 1, 1, 2)); validationErrorPanel = new JPanel(new BorderLayout()); validationErrorList = new JList(new DefaultListModel()) { /* (non-Javadoc) * @see javax.swing.JList#getToolTipText(java.awt.event.MouseEvent) */ @Override public String getToolTipText(MouseEvent event) { //Get the mouse location java.awt.Point point = event.getPoint(); //Get the item in the list box at the mouse location int index = this.locationToIndex(point); //Get the value of the item in the list return this.getModel().getElementAt(index).toString(); } }; validationErrorPanel.add(new JScrollPane(validationErrorList, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER), BorderLayout.CENTER); printBtn = createButton(getResourceString("WB_UPLOAD_PRINT_MESSAGES_BTN")); printBtn.setActionCommand(PRINT_INVALID); JPanel pbtnPane = new JPanel(new FormLayout("fill:m:grow, right:max(50dlu;pref)", "c:m")); pbtnPane.add(printBtn, cc.xy(2, 1)); validationErrorPanel.add(pbtnPane, BorderLayout.SOUTH); add(msgPane, cc.xy(4, 6)); JPanel btnPane = new JPanel(new FormLayout("f:max(50dlu;pref)", "c:m, c:m, c:m, c:m, c:m, c:m")); validateContentBtn = createButton(getResourceString("WB_UPLOAD_VALIDATE_CONTENT_BTN")); validateContentBtn.setActionCommand(VALIDATE_CONTENT); viewSettingsBtn = createButton(getResourceString("WB_UPLOAD_SETTINGS_BTN")); viewSettingsBtn.setActionCommand(VIEW_SETTINGS); doUploadBtn = createButton(getResourceString("WB_UPLOAD_BTN")); doUploadBtn.setActionCommand(DO_UPLOAD); viewUploadBtn = createButton(getResourceString("WB_UPLOAD_VIEW_BTN")); viewUploadBtn.setActionCommand(VIEW_UPLOAD); closeBtn = createButton(getResourceString("CLOSE")); closeBtn.setActionCommand(CLOSE_UI); undoBtn = createButton(getResourceString("WB_UPLOAD_UNDO_BTN")); undoBtn.setActionCommand(UNDO_UPLOAD); undoBtn.setVisible(!isUpdateUpload); btnPane.add(validateContentBtn, cc.xy(1, 1)); btnPane.add(doUploadBtn, cc.xy(1, 2)); btnPane.add(viewUploadBtn, cc.xy(1, 3)); btnPane.add(viewSettingsBtn, cc.xy(1, 4)); btnPane.add(undoBtn, cc.xy(1, 5)); btnPane.add(closeBtn, cc.xy(1, 6)); add(btnPane, cc.xy(6, 6)); uploadTbls.addMouseListener(new MouseListener() { public void mouseClicked(MouseEvent me) { if (me.getClickCount() == 2) { uploadTblDblClick(); } uploadTblClick(); } public void mouseEntered(MouseEvent me) { // no comment. } public void mouseExited(MouseEvent me) { // no comment. } public void mousePressed(MouseEvent me) { // no comment. } public void mouseReleased(MouseEvent me) { // no comment. } }); msgList.addMouseListener(new MouseListener() { public void mouseClicked(MouseEvent me) { msgClick(false); } public void mouseEntered(MouseEvent me) { // no comment. } public void mouseExited(MouseEvent me) { // no comment. } public void mousePressed(MouseEvent me) { // no comment. } public void mouseReleased(MouseEvent me) { // no comment. } }); validationErrorList.addMouseListener(new MouseListener() { public void mouseClicked(MouseEvent me) { msgClick(true); } public void mouseEntered(MouseEvent me) { // no comment. } public void mouseExited(MouseEvent me) { // no comment. } public void mousePressed(MouseEvent me) { // no comment. } public void mouseReleased(MouseEvent me) { // no comment. } }); }
From source file:edu.ku.brc.specify.tasks.subpane.wb.WorkbenchPaneSS.java
License:Open Source License
/** * Constructs the pane for the spreadsheet. * /*from ww w . j a v a2 s . c o m*/ * @param name the name of the pane * @param task the owning task * @param workbench the workbench to be edited * @param showImageView shows image window when first showing the window */ public WorkbenchPaneSS(final String name, final Taskable task, final Workbench workbenchArg, final boolean showImageView, final boolean isReadOnly) throws Exception { super(name, task); removeAll(); if (workbenchArg == null) { return; } this.workbench = workbenchArg; this.isReadOnly = isReadOnly; headers.addAll(workbench.getWorkbenchTemplate().getWorkbenchTemplateMappingItems()); Collections.sort(headers); boolean hasOneOrMoreImages = false; // pre load all the data for (WorkbenchRow wbRow : workbench.getWorkbenchRows()) { for (WorkbenchDataItem wbdi : wbRow.getWorkbenchDataItems()) { wbdi.getCellData(); } if (wbRow.getWorkbenchRowImages() != null && wbRow.getWorkbenchRowImages().size() > 0) { hasOneOrMoreImages = true; } } model = new GridTableModel(this); spreadSheet = new WorkbenchSpreadSheet(model, this); spreadSheet.setReadOnly(isReadOnly); model.setSpreadSheet(spreadSheet); Highlighter simpleStriping = HighlighterFactory.createSimpleStriping(); GridCellHighlighter hl = new GridCellHighlighter( new GridCellPredicate(GridCellPredicate.AnyPredicate, null)); Short[] errs = { WorkbenchDataItem.VAL_ERROR, WorkbenchDataItem.VAL_ERROR_EDIT }; ColorHighlighter errColorHighlighter = new ColorHighlighter( new GridCellPredicate(GridCellPredicate.ValidationPredicate, errs), CellRenderingAttributes.errorBackground, null); Short[] newdata = { WorkbenchDataItem.VAL_NEW_DATA }; ColorHighlighter noDataHighlighter = new ColorHighlighter( new GridCellPredicate(GridCellPredicate.MatchingPredicate, newdata), CellRenderingAttributes.newDataBackground, null); Short[] multimatch = { WorkbenchDataItem.VAL_MULTIPLE_MATCH }; ColorHighlighter multiMatchHighlighter = new ColorHighlighter( new GridCellPredicate(GridCellPredicate.MatchingPredicate, multimatch), CellRenderingAttributes.multipleMatchBackground, null); spreadSheet.setHighlighters(simpleStriping, hl, errColorHighlighter, noDataHighlighter, multiMatchHighlighter); //add key mappings for cut, copy, paste //XXX Note: these are shortcuts directly to the SpreadSheet cut,copy,paste methods, NOT to the Specify edit menu. addRecordKeyMappings(spreadSheet, KeyEvent.VK_C, "Copy", new AbstractAction() { public void actionPerformed(ActionEvent ae) { SwingUtilities.invokeLater(new Runnable() { /* (non-Javadoc) * @see java.lang.Runnable#run() */ @Override public void run() { spreadSheet.cutOrCopy(false); } }); } }, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()); addRecordKeyMappings(spreadSheet, KeyEvent.VK_X, "Cut", new AbstractAction() { public void actionPerformed(ActionEvent ae) { SwingUtilities.invokeLater(new Runnable() { /* (non-Javadoc) * @see java.lang.Runnable#run() */ @Override public void run() { spreadSheet.cutOrCopy(true); } }); } }, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()); addRecordKeyMappings(spreadSheet, KeyEvent.VK_V, "Paste", new AbstractAction() { public void actionPerformed(ActionEvent ae) { SwingUtilities.invokeLater(new Runnable() { /* (non-Javadoc) * @see java.lang.Runnable#run() */ @Override public void run() { spreadSheet.paste(); } }); } }, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()); findPanel = spreadSheet.getFindReplacePanel(); UIRegistry.getLaunchFindReplaceAction().setSearchReplacePanel(findPanel); spreadSheet.setShowGrid(true); JTableHeader header = spreadSheet.getTableHeader(); header.addMouseListener(new ColumnHeaderListener()); header.setReorderingAllowed(false); // Turn Off column dragging // Put the model in image mode, and never change it. // Now we're showing/hiding the image column using JXTable's column hiding features. model.setInImageMode(true); int imageColIndex = model.getColumnCount() - 1; imageColExt = spreadSheet.getColumnExt(imageColIndex); imageColExt.setVisible(false); int sgrColIndex = model.getSgrHeading().getViewOrder(); sgrColExt = spreadSheet.getColumnExt(sgrColIndex); sgrColExt.setComparator(((WorkbenchSpreadSheet) spreadSheet).new NumericColumnComparator()); int cmpIdx = 0; for (Comparator<String> cmp : ((WorkbenchSpreadSheet) spreadSheet).getComparators()) { if (cmp != null) { spreadSheet.getColumnExt(cmpIdx++).setComparator(cmp); } } // Start off with the SGR score column hidden showHideSgrCol(false); model.addTableModelListener(new TableModelListener() { public void tableChanged(TableModelEvent e) { setChanged(true); } }); spreadSheet.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) { UIRegistry.enableCutCopyPaste(true); UIRegistry.enableFind(findPanel, true); } @Override public void focusLost(FocusEvent e) { UIRegistry.enableCutCopyPaste(true); UIRegistry.enableFind(findPanel, true); } }); if (isReadOnly) { saveBtn = null; } else { saveBtn = createButton(getResourceString("SAVE")); saveBtn.setToolTipText( String.format(getResourceString("WB_SAVE_DATASET_TT"), new Object[] { workbench.getName() })); saveBtn.setEnabled(false); saveBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { UsageTracker.incrUsageCount("WB.SaveDataSet"); UIRegistry.writeSimpleGlassPaneMsg( String.format(getResourceString("WB_SAVING"), new Object[] { workbench.getName() }), WorkbenchTask.GLASSPANE_FONT_SIZE); UIRegistry.getStatusBar().setIndeterminate(workbench.getName(), true); final SwingWorker worker = new SwingWorker() { @SuppressWarnings("synthetic-access") @Override public Object construct() { try { saveObject(); } catch (Exception ex) { UsageTracker.incrHandledUsageCount(); edu.ku.brc.exceptions.ExceptionTracker.getInstance().capture(WorkbenchPaneSS.class, ex); log.error(ex); return ex; } return null; } // Runs on the event-dispatching thread. @Override public void finished() { Object retVal = get(); if (retVal != null && retVal instanceof Exception) { Exception ex = (Exception) retVal; UIRegistry.getStatusBar().setErrorMessage(getResourceString("WB_ERROR_SAVING"), ex); } UIRegistry.clearSimpleGlassPaneMsg(); UIRegistry.getStatusBar().setProgressDone(workbench.getName()); } }; worker.start(); } }); } Action delAction = addRecordKeyMappings(spreadSheet, KeyEvent.VK_F3, "DelRow", new AbstractAction() { public void actionPerformed(ActionEvent ae) { if (validationWorkerQueue.peek() == null) { deleteRows(); } } }, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()); if (isReadOnly) { deleteRowsBtn = null; } else { deleteRowsBtn = createIconBtn("DelRec", "WB_DELETE_ROW", delAction); selectionSensitiveButtons.add(deleteRowsBtn); spreadSheet.setDeleteAction(delAction); } //XXX Using the wb ID in the prefname to do pref setting per wb, may result in a bloated prefs file?? doIncrementalValidation = AppPreferences.getLocalPrefs() .getBoolean(wbAutoValidatePrefName + "." + workbench.getId(), true); doIncrementalMatching = AppPreferences.getLocalPrefs() .getBoolean(wbAutoMatchPrefName + "." + workbench.getId(), false); if (isReadOnly) { clearCellsBtn = null; } else { clearCellsBtn = createIconBtn("Eraser", "WB_CLEAR_CELLS", new ActionListener() { public void actionPerformed(ActionEvent ae) { spreadSheet.clearSorter(); if (spreadSheet.getCellEditor() != null) { spreadSheet.getCellEditor().stopCellEditing(); } int[] rows = spreadSheet.getSelectedRowModelIndexes(); int[] cols = spreadSheet.getSelectedColumnModelIndexes(); model.clearCells(rows, cols); } }); selectionSensitiveButtons.add(clearCellsBtn); } Action addAction = addRecordKeyMappings(spreadSheet, KeyEvent.VK_N, "AddRow", new AbstractAction() { public void actionPerformed(ActionEvent ae) { if (workbench.getWorkbenchRows().size() < WorkbenchTask.MAX_ROWS) { if (validationWorkerQueue.peek() == null) { addRowAfter(); } } } }, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()); if (isReadOnly) { addRowsBtn = null; } else { addRowsBtn = createIconBtn("AddRec", "WB_ADD_ROW", addAction); addRowsBtn.setEnabled(true); addAction.setEnabled(true); } if (isReadOnly) { carryForwardBtn = null; } else { carryForwardBtn = createIconBtn("CarryForward20x20", IconManager.IconSize.NonStd, "WB_CARRYFORWARD", false, new ActionListener() { public void actionPerformed(ActionEvent ae) { UsageTracker.getUsageCount("WBCarryForward"); configCarryFoward(); } }); carryForwardBtn.setEnabled(true); } toggleImageFrameBtn = createIconBtn("CardImage", IconManager.IconSize.NonStd, "WB_SHOW_IMG_WIN", false, new ActionListener() { public void actionPerformed(ActionEvent ae) { toggleImageFrameVisible(); } }); toggleImageFrameBtn.setEnabled(true); importImagesBtn = createIconBtn("CardImage", IconManager.IconSize.NonStd, "WB_SHOW_IMG_WIN", false, new ActionListener() { public void actionPerformed(ActionEvent ae) { toggleImportImageFrameVisible(); } }); importImagesBtn.setEnabled(true); /*showMapBtn = createIconBtn("ShowMap", IconManager.IconSize.NonStd, "WB_SHOW_MAP", false, new ActionListener() { public void actionPerformed(ActionEvent ae) { showMapOfSelectedRecords(); } });*/ // enable or disable along with Google Earth and Geo Ref Convert buttons if (isReadOnly) { exportKmlBtn = null; } else { exportKmlBtn = createIconBtn("GoogleEarth", IconManager.IconSize.NonStd, "WB_SHOW_IN_GOOGLE_EARTH", false, new ActionListener() { public void actionPerformed(ActionEvent ae) { SwingUtilities.invokeLater(new Runnable() { public void run() { showRecordsInGoogleEarth(); } }); } }); } // readRegisteries(); // enable or disable along with Show Map and Geo Ref Convert buttons if (isReadOnly) { geoRefToolBtn = null; } else { AppPreferences remotePrefs = AppPreferences.getRemote(); final String tool = remotePrefs.get("georef_tool", "geolocate"); String iconName = "GEOLocate20"; //tool.equalsIgnoreCase("geolocate") ? "GeoLocate" : "BioGeoMancer"; String toolTip = tool.equalsIgnoreCase("geolocate") ? "WB_DO_GEOLOCATE_LOOKUP" : "WB_DO_BIOGEOMANCER_LOOKUP"; geoRefToolBtn = createIconBtn(iconName, IconManager.IconSize.NonStd, toolTip, false, new ActionListener() { public void actionPerformed(ActionEvent ae) { spreadSheet.clearSorter(); if (tool.equalsIgnoreCase("geolocate")) { doGeoRef(new edu.ku.brc.services.geolocate.prototype.GeoCoordGeoLocateProvider(), "WB.GeoLocateRows"); } else { doGeoRef(new GeoCoordBGMProvider(), "WB.BioGeomancerRows"); } } }); // only enable it if the workbench has the proper columns in it String[] missingColumnsForBG = getMissingButRequiredColumnsForGeoRefTool(tool); if (missingColumnsForBG.length > 0) { geoRefToolBtn.setEnabled(false); String ttText = "<p>" + getResourceString("WB_ADDITIONAL_FIELDS_REQD") + ":<ul>"; for (String reqdField : missingColumnsForBG) { ttText += "<li>" + reqdField + "</li>"; } ttText += "</ul>"; String origTT = geoRefToolBtn.getToolTipText(); geoRefToolBtn.setToolTipText("<html>" + origTT + ttText); } else { geoRefToolBtn.setEnabled(true); } } if (isReadOnly) { convertGeoRefFormatBtn = null; } else { convertGeoRefFormatBtn = createIconBtn("ConvertGeoRef", IconManager.IconSize.NonStd, "WB_CONVERT_GEO_FORMAT", false, new ActionListener() { public void actionPerformed(ActionEvent ae) { showGeoRefConvertDialog(); } }); // now enable/disable the geo ref related buttons String[] missingGeoRefFields = getMissingGeoRefLatLonFields(); if (missingGeoRefFields.length > 0) { convertGeoRefFormatBtn.setEnabled(false); exportKmlBtn.setEnabled(false); //showMapBtn.setEnabled(false); String ttText = "<p>" + getResourceString("WB_ADDITIONAL_FIELDS_REQD") + ":<ul>"; for (String reqdField : missingGeoRefFields) { ttText += "<li>" + reqdField + "</li>"; } ttText += "</ul>"; String origTT1 = convertGeoRefFormatBtn.getToolTipText(); convertGeoRefFormatBtn.setToolTipText("<html>" + origTT1 + ttText); String origTT2 = exportKmlBtn.getToolTipText(); exportKmlBtn.setToolTipText("<html>" + origTT2 + ttText); //String origTT3 = showMapBtn.getToolTipText(); //showMapBtn.setToolTipText("<html>" + origTT3 + ttText); } else { convertGeoRefFormatBtn.setEnabled(true); exportKmlBtn.setEnabled(true); //showMapBtn.setEnabled(true); } } if (AppContextMgr.isSecurityOn() && !task.getPermissions().canModify()) { exportExcelCsvBtn = null; } else { exportExcelCsvBtn = createIconBtn("Export", IconManager.IconSize.NonStd, "WB_EXPORT_DATA", false, new ActionListener() { public void actionPerformed(ActionEvent ae) { doExcelCsvExport(); } }); exportExcelCsvBtn.setEnabled(true); } uploadDatasetBtn = createIconBtn("Upload", IconManager.IconSize.Std24, "WB_UPLOAD_DATA", false, new ActionListener() { public void actionPerformed(ActionEvent ae) { doDatasetUpload(); } }); uploadDatasetBtn.setVisible(isUploadPermitted() && !UIRegistry.isMobile()); uploadDatasetBtn.setEnabled(canUpload()); if (!uploadDatasetBtn.isEnabled()) { uploadDatasetBtn.setToolTipText(getResourceString("WB_UPLOAD_IN_PROGRESS")); } // listen to selection changes to enable/disable certain buttons spreadSheet.getSelectionModel().addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (!e.getValueIsAdjusting()) { JStatusBar statusBar = UIRegistry.getStatusBar(); statusBar.setText(""); currentRow = spreadSheet.getSelectedRow(); updateBtnUI(); } } }); for (int c = 0; c < spreadSheet.getTableHeader().getColumnModel().getColumnCount(); c++) { // TableColumn column = // spreadSheet.getTableHeader().getColumnModel().getColumn(spreadSheet.getTableHeader().getColumnModel().getColumnCount()-1); TableColumn column = spreadSheet.getTableHeader().getColumnModel().getColumn(c); column.setCellRenderer(new WbCellRenderer()); } // setup the JFrame to show images attached to WorkbenchRows imageFrame = new ImageFrame(mapSize, this, this.workbench, task, isReadOnly); // setup the JFrame to show images attached to WorkbenchRows imageImportFrame = new ImageImportFrame(this, this.workbench); setupWorkbenchRowChangeListener(); // setup window minimizing/maximizing listener JFrame topFrame = (JFrame) UIRegistry.getTopWindow(); minMaxWindowListener = new WindowAdapter() { @Override public void windowDeiconified(WindowEvent e) { if (imageFrame != null && imageFrame.isVisible()) { imageFrame.setExtendedState(Frame.NORMAL); } if (mapFrame != null && mapFrame.isVisible()) { mapFrame.setExtendedState(Frame.NORMAL); } } @Override public void windowIconified(WindowEvent e) { if (imageFrame != null && imageFrame.isVisible()) { imageFrame.setExtendedState(Frame.ICONIFIED); } if (mapFrame != null && mapFrame.isVisible()) { mapFrame.setExtendedState(Frame.ICONIFIED); } } }; topFrame.addWindowListener(minMaxWindowListener); if (!isReadOnly) { showHideUploadToolBtn = createIconBtn("ValidateWB", IconManager.IconSize.NonStd, "WB_HIDE_UPLOADTOOLPANEL", false, new ActionListener() { public void actionPerformed(ActionEvent ae) { if (uploadToolPanel.isExpanded()) { hideUploadToolPanel(); showHideUploadToolBtn.setToolTipText(getResourceString("WB_SHOW_UPLOADTOOLPANEL")); } else { showUploadToolPanel(); showHideUploadToolBtn.setToolTipText(getResourceString("WB_HIDE_UPLOADTOOLPANEL")); } } }); showHideUploadToolBtn.setEnabled(true); } // setup the mapping features mapFrame = new JFrame(); mapFrame.setIconImage(IconManager.getImage("AppIcon").getImage()); mapFrame.setTitle(getResourceString("WB_GEO_REF_DATA_MAP")); mapImageLabel = createLabel(""); mapImageLabel.setSize(500, 500); mapFrame.add(mapImageLabel); mapFrame.setSize(500, 500); // start putting together the visible UI CellConstraints cc = new CellConstraints(); JComponent[] compsArray = { addRowsBtn, deleteRowsBtn, clearCellsBtn, /*showMapBtn,*/ exportKmlBtn, geoRefToolBtn, convertGeoRefFormatBtn, exportExcelCsvBtn, uploadDatasetBtn, showHideUploadToolBtn }; Vector<JComponent> availableComps = new Vector<JComponent>( compsArray.length + workBenchPluginSSBtns.size()); for (JComponent c : compsArray) { if (c != null) { availableComps.add(c); } } for (JComponent c : workBenchPluginSSBtns) { availableComps.add(c); } PanelBuilder spreadSheetControlBar = new PanelBuilder(new FormLayout( "f:p:g,4px," + createDuplicateJGoodiesDef("p", "4px", availableComps.size()) + ",4px,", "c:p:g")); int x = 3; for (JComponent c : availableComps) { spreadSheetControlBar.add(c, cc.xy(x, 1)); x += 2; } int h = 0; Vector<WorkbenchTemplateMappingItem> headers = new Vector<WorkbenchTemplateMappingItem>(); headers.addAll(workbench.getWorkbenchTemplate().getWorkbenchTemplateMappingItems()); Collections.sort(headers); for (WorkbenchTemplateMappingItem mi : headers) { //using the workbench data model table. Not the actual specify table the column is mapped to. //This MIGHT be less confusing //System.out.println("setting header renderer for " + mi.getTableName() + "." + mi.getFieldName()); spreadSheet.getColumnModel().getColumn(h++) .setHeaderRenderer(new WbTableHeaderRenderer(mi.getTableName())); } // NOTE: This needs to be done after the creation of the saveBtn. And after the creation of the header renderes. initColumnSizes(spreadSheet, saveBtn); // Create the Form Pane -- needs to be done after initColumnSizes - which also sets cell editors for collumns if (task instanceof SGRTask) { formPane = new SGRFormPane(this, workbench, isReadOnly); } else { formPane = new FormPane(this, workbench, isReadOnly); } // This panel contains just the ResultSetContoller, it's needed so the RSC gets centered PanelBuilder rsPanel = new PanelBuilder(new FormLayout("c:p:g", "c:p:g")); FormValidator dummy = new FormValidator(null); dummy.setEnabled(true); resultsetController = new ResultSetController(dummy, !isReadOnly, !isReadOnly, false, getResourceString("Record"), model.getRowCount(), true); resultsetController.addListener(formPane); if (!isReadOnly) { resultsetController.getDelRecBtn().addActionListener(delAction); } // else // { // resultsetController.getDelRecBtn().setVisible(false); // } rsPanel.add(resultsetController.getPanel(), cc.xy(1, 1)); // This panel is a single row containing the ResultSetContoller and the other controls for the Form Panel String colspec = "f:p:g, p, f:p:g, p"; for (int i = 0; i < workBenchPluginFormBtns.size(); i++) { colspec = colspec + ", f:p, p"; } PanelBuilder resultSetPanel = new PanelBuilder(new FormLayout(colspec, "c:p:g")); // Now put the two panel into the single row panel resultSetPanel.add(rsPanel.getPanel(), cc.xy(2, 1)); if (!isReadOnly) { resultSetPanel.add(formPane.getControlPropsBtn(), cc.xy(4, 1)); } int ccx = 6; for (JComponent c : workBenchPluginFormBtns) { resultSetPanel.add(c, cc.xy(ccx, 1)); ccx += 2; } // Create the main panel that uses card layout for the form and spreasheet mainPanel = new JPanel(cardLayout = new CardLayout()); // Add the Form and Spreadsheet to the CardLayout mainPanel.add(spreadSheet.getScrollPane(), PanelType.Spreadsheet.toString()); mainPanel.add(formPane.getPane(), PanelType.Form.toString()); // The controllerPane is a CardLayout that switches between the Spreadsheet control bar and the Form Control Bar controllerPane = new JPanel(cpCardLayout = new CardLayout()); controllerPane.add(spreadSheetControlBar.getPanel(), PanelType.Spreadsheet.toString()); controllerPane.add(resultSetPanel.getPanel(), PanelType.Form.toString()); JLabel sep1 = new JLabel(IconManager.getIcon("Separator")); JLabel sep2 = new JLabel(IconManager.getIcon("Separator")); ssFormSwitcher = createSwitcher(); // This works setLayout(new BorderLayout()); boolean doDnDImages = AppPreferences.getLocalPrefs().getBoolean("WB_DND_IMAGES", false); JComponent[] ctrlCompArray1 = { importImagesBtn, toggleImageFrameBtn, carryForwardBtn, sep1, saveBtn, sep2, ssFormSwitcher }; JComponent[] ctrlCompArray2 = { toggleImageFrameBtn, carryForwardBtn, sep1, saveBtn, sep2, ssFormSwitcher }; JComponent[] ctrlCompArray = doDnDImages ? ctrlCompArray1 : ctrlCompArray2; Vector<Pair<JComponent, Integer>> ctrlComps = new Vector<Pair<JComponent, Integer>>(); for (JComponent c : ctrlCompArray) { ctrlComps.add(new Pair<JComponent, Integer>(c, null)); } String layoutStr = ""; int compCount = 0; int col = 1; int pos = 0; for (Pair<JComponent, Integer> c : ctrlComps) { JComponent comp = c.getFirst(); if (comp != null) { boolean addComp = !(comp == sep1 || comp == sep2) || compCount > 0; if (!addComp) { c.setFirst(null); } else { if (!StringUtils.isEmpty(layoutStr)) { layoutStr += ","; col++; if (pos < ctrlComps.size() - 1) { //this works because we know ssFormSwitcher is last and always non-null. layoutStr += "6px,"; col++; } } c.setSecond(col); if (comp == sep1 || comp == sep2) { layoutStr += "6px"; compCount = 0; } else { layoutStr += "p"; compCount++; } } } pos++; } PanelBuilder ctrlBtns = new PanelBuilder(new FormLayout(layoutStr, "c:p:g")); for (Pair<JComponent, Integer> c : ctrlComps) { if (c.getFirst() != null) { ctrlBtns.add(c.getFirst(), cc.xy(c.getSecond(), 1)); } } add(mainPanel, BorderLayout.CENTER); FormLayout formLayout = new FormLayout("f:p:g,4px,p", "2px,f:p:g,p:g,p:g"); PanelBuilder builder = new PanelBuilder(formLayout); builder.add(controllerPane, cc.xy(1, 2)); builder.add(ctrlBtns.getPanel(), cc.xy(3, 2)); if (!isReadOnly) { uploadToolPanel = new UploadToolPanel(this, UploadToolPanel.EXPANDED); uploadToolPanel.createUI(); // showHideUploadToolBtn = createIconBtn("ValidateWB", IconManager.IconSize.NonStd, "WB_HIDE_UPLOADTOOLPANEL", false, new ActionListener() // { // public void actionPerformed(ActionEvent ae) // { // if (uploadToolPanel.isExpanded()) // { // hideUploadToolPanel(); // showHideUploadToolBtn.setToolTipText(getResourceString("WB_SHOW_UPLOADTOOLPANEL")); // } else // { // showUploadToolPanel(); // showHideUploadToolBtn.setToolTipText(getResourceString("WB_HIDE_UPLOADTOOLPANEL")); // } // } // }); // showHideUploadToolBtn.setEnabled(true); } builder.add(uploadToolPanel, cc.xywh(1, 3, 3, 1)); builder.add(findPanel, cc.xywh(1, 4, 3, 1)); add(builder.getPanel(), BorderLayout.SOUTH); resultsetController.addListener(new ResultSetControllerListener() { public boolean indexAboutToChange(int oldIndex, int newIndex) { return true; } public void indexChanged(int newIndex) { if (imageFrame != null) { if (newIndex > -1) { int index = spreadSheet.convertRowIndexToModel(newIndex); imageFrame.setRow(workbench.getRow(index)); } else { imageFrame.setRow(null); } } } public void newRecordAdded() { // do nothing } }); //compareSchemas(); if (getIncremental() && workbenchValidator == null) { buildValidator(); } // int c = 0; // Vector<WorkbenchTemplateMappingItem> headers = new Vector<WorkbenchTemplateMappingItem>(); // headers.addAll(workbench.getWorkbenchTemplate().getWorkbenchTemplateMappingItems()); // Collections.sort(headers); // for (WorkbenchTemplateMappingItem mi : headers) // { // //using the workbench data model table. Not the actual specify table the column is mapped to. // //This MIGHT be less confusing // //System.out.println("setting header renderer for " + mi.getTableName() + "." + mi.getFieldName()); // spreadSheet.getColumnModel().getColumn(c++).setHeaderRenderer(new WbTableHeaderRenderer(mi.getTableName())); // } // // // NOTE: This needs to be done after the creation of the saveBtn. And after the creation of the header renderes. // initColumnSizes(spreadSheet, saveBtn); // See if we need to make the Image Frame visible // Commenting this out for now because it is so annoying. if (showImageView || hasOneOrMoreImages) { SwingUtilities.invokeLater(new Runnable() { public void run() { toggleImageFrameVisible(); SwingUtilities.invokeLater(new Runnable() { public void run() { final Frame f = (Frame) UIRegistry.get(UIRegistry.FRAME); f.toFront(); f.requestFocus(); } }); } }); } ((WorkbenchTask) ContextMgr.getTaskByClass(WorkbenchTask.class)).opening(this); ((SGRTask) ContextMgr.getTaskByClass(SGRTask.class)).opening(this); }
From source file:edu.ku.brc.specify.tools.schemalocale.DisciplineBasedPanel.java
License:Open Source License
/** * /*from w ww . j a va2s. com*/ */ protected void createUI() { CellConstraints cc = new CellConstraints(); addBtn = UIHelper.createIconBtn("DownArrow", "", new ActionListener() { public void actionPerformed(ActionEvent e) { addItem(); } }); delBtn = UIHelper.createIconBtn("UpArrow", "", new ActionListener() { public void actionPerformed(ActionEvent e) { delItem(); } }); fieldPanel = new FieldItemPanel(schemaPanel, webLinkMgrCache, true, true, true, null); fieldPanel.setLocalizableIO(this); fieldPanel.setStatusBar(schemaPanel.getStatusBar()); PanelBuilder arrowPanel = new PanelBuilder(new FormLayout("f:p:g, p, 2px, p, f:p:g", "p")); arrowPanel.add(addBtn, cc.xy(2, 1)); arrowPanel.add(delBtn, cc.xy(4, 1)); PanelBuilder pb = new PanelBuilder(new FormLayout("p, 2px, f:p:g", "p,2px,p,2px,p,2px,p"), this); pb.add(arrowPanel.getPanel(), cc.xy(1, 1)); pb.addSeparator("Disciplines", cc.xywh(1, 3, 3, 1)); pb.add(disciplineCBX, cc.xy(1, 5)); pb.add(fieldPanel, cc.xywh(1, 7, 3, 1)); }
From source file:edu.ku.brc.specify.tools.schemalocale.FieldItemPanel.java
License:Open Source License
/** * // ww w . j a v a 2 s . c o m */ public void buildUI() { setIgnoreChanges(true); fieldsList = createList(fieldsModel); fieldsList.getSelectionModel().addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (!e.getValueIsAdjusting()) { getAllDataFromUI(); fieldSelected(); } } }); fieldsList.addFocusListener(new FocusAdapter() { @Override public void focusLost(FocusEvent e) { super.focusLost(e); //lastIndex = fieldsList.getSelectedIndex(); } }); fieldDescText.addKeyListener(new LengthWatcher(255)); // setting min and pref sizes to some bogus values so that textarea shrinks with dialog fieldNameText.addKeyListener(new LengthWatcher(64)); CellConstraints cc = new CellConstraints(); int y = 1; JScrollPane fldsp = UIHelper.createScrollPane(fieldsList); // LocalizableNameDescIFace PanelBuilder pb = new PanelBuilder(new FormLayout("max(200px;p),4px,p,2px,p,10px,p,2px,p,f:p:g", (includeHiddenUI ? "p,2px," : "") + (isDBSchema ? "p,2px,p,2px," : "") + (includeFormatAndAutoNumUI ? "p,2px,p,2px," : "") + "p,2px,p,2px,p,2px,p,2px,p,2px,p,2px,f:p:g"), this); pb.add(fldsp, cc.xywh(1, y, 1, 7 + (isDBSchema ? 4 : 0))); pb.add(fieldNameLbl = createI18NFormLabel("SL_LABEL", SwingConstants.RIGHT), cc.xy(3, y)); pb.add(fieldNameText, cc.xywh(5, y, 6, 1)); y += 2; if (includeHiddenUI) { pb.add(fieldHideChk, cc.xy(5, y)); y += 2; } pb.add(fieldDescLbl = createI18NFormLabel("SL_DESC", SwingConstants.RIGHT), cc.xy(3, y)); JScrollPane sp = new JScrollPane(fieldDescText, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); pb.add(sp, cc.xywh(5, y, 6, 1)); y += 2; fieldDescText.setLineWrap(true); fieldDescText.setWrapStyleWord(true); if (isDBSchema) { fieldTypeTxt = createLabel(""); fieldLengthTxt = createLabel(""); pb.add(fieldTypeLbl = createI18NFormLabel("SL_TYPE", SwingConstants.RIGHT), cc.xy(3, y)); pb.add(fieldTypeTxt, cc.xy(5, y)); pb.add(fieldReqChk = createCheckBox(getResourceString("SL_REQ")), cc.xy(9, y)); y += 2; pb.add(fieldLengthLbl = createI18NFormLabel("SL_LENGTH", SwingConstants.RIGHT), cc.xy(3, y)); pb.add(fieldLengthTxt, cc.xy(5, y)); y += 2; fieldTypeTxt.setBackground(Color.WHITE); fieldLengthTxt.setBackground(Color.WHITE); fieldTypeTxt.setOpaque(true); fieldLengthTxt.setOpaque(true); } if (includeFormatAndAutoNumUI) { PanelBuilder inner = new PanelBuilder(new FormLayout("p,2px,p", "p")); formatSwitcherCombo = createComboBox(); fmtCardLayout = new CardLayout(); formatterPanel = new JPanel(fmtCardLayout); pb.add(formatLbl = createI18NFormLabel("SL_FMTTYPE", SwingConstants.RIGHT), cc.xy(3, y)); inner.add(formatSwitcherCombo, cc.xy(1, 1)); inner.add(formatterPanel, cc.xy(3, 1)); pb.add(inner.getPanel(), cc.xywh(5, y, 6, 1)); y += 2; ActionListener switchAL = new ActionListener() { public void actionPerformed(ActionEvent e) { String item = (String) formatSwitcherCombo.getSelectedItem(); if (item != null) { fmtCardLayout.show(formatterPanel, item); webLinkCombo.setEnabled(item.equals(SL_WEBLINK)); if (formatSwitcherCombo.getSelectedIndex() == 0) { if (webLinkCombo.getModel().getSize() > 0) { webLinkCombo.setSelectedIndex(0); } if (formatCombo.getModel().getSize() > 0) { formatCombo.setSelectedIndex(0); } if (pickListCBX.getModel().getSize() > 0) { pickListCBX.setSelectedIndex(0); } } } } }; formatSwitcherCombo.addActionListener(switchAL); formatterPanel.add(SL_NONE, new JPanel()); //-------------------------- // UIFieldFormatter //-------------------------- inner = new PanelBuilder(new FormLayout("max(p;150px),2px,min", "p")); formatCombo = createComboBox(new DefaultComboBoxModel()); formatMoreBtn = createButton(ELIPSES); inner.add(formatCombo, cc.xy(1, 1)); inner.add(formatMoreBtn, cc.xy(3, 1)); formatMoreBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { UIFormatterListEdtDlg dlg = new UIFormatterListEdtDlg((Frame) UIRegistry.getTopWindow(), fieldInfo, true, schemaPanel.getUiFieldFormatterMgrCache()); dlg.setVisible(true); if (!dlg.isCancelled() && dlg.hasChanged()) { //schemaPanel.setHasChanged(true); formHasChanged(); //fillFormatBox(dlg.getSelectedFormat()); setSelectedFieldFormatter(dlg.getSelectedFormat()); } } }); formatterPanel.add(SL_FORMAT, inner.getPanel()); ActionListener changed = new ActionListener() { public void actionPerformed(ActionEvent e) { formHasChanged(); boolean hasFormat = formatCombo.getSelectedIndex() > 0; webLinkCombo.setEnabled(!hasFormat); if (hasFormat) { webLinkCombo.setSelectedIndex(webLinkCombo.getModel().getSize() > 0 ? 0 : -1); pickListCBX.setSelectedIndex(pickListCBX.getModel().getSize() > 0 ? 0 : -1); } } }; formatCombo.addActionListener(changed); //-------------------------- // WebLinks //-------------------------- webLinkMoreBtn = createButton(ELIPSES); webLinkMoreBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { WebLinkDef selectedWL = (WebLinkDef) webLinkCombo.getSelectedItem(); WebLinkConfigDlg dlg = webLinkMgrCache.editWebLinks(tableInfo, false); if (dlg.getBtnPressed() == CustomDialog.OK_BTN) { fillWebLinkBox(); formHasChanged(); if (selectedWL != null && !selectedWL.getName().equals(SL_WEBLINK)) { dlg.setWebLink(selectedWL.getName()); } if (dlg.getBtnPressed() == CustomDialog.OK_BTN) { setSelectedWebLink(dlg.getSelectedItem()); } } } }); inner = new PanelBuilder(new FormLayout("max(p;150px),2px,min", "p")); webLinkCombo = createComboBox(); DefaultComboBoxModel model = (DefaultComboBoxModel) webLinkCombo.getModel(); model.addElement(webLinkDefNone); webLinkCombo.setSelectedIndex(0); inner.add(webLinkCombo, cc.xy(1, 1)); inner.add(webLinkMoreBtn, cc.xy(3, 1)); ActionListener wlchanged = new ActionListener() { public void actionPerformed(ActionEvent e) { formHasChanged(); boolean hasWL = webLinkCombo.getSelectedIndex() > 0; webLinkCombo.setEnabled(hasWL); if (hasWL) { formatCombo.setSelectedIndex(formatCombo.getModel().getSize() > 0 ? 0 : -1); pickListCBX.setSelectedIndex(pickListCBX.getModel().getSize() > 0 ? 0 : -1); } } }; webLinkCombo.addActionListener(wlchanged); formatterPanel.add(SL_WEBLINK, inner.getPanel()); } //-------------------------- // PickList //-------------------------- pickListCBX = createComboBox(new DefaultComboBoxModel()); pickListCBX.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { formHasChanged(); if (formatCombo != null && pickListCBX.getSelectedIndex() > 0) { formatCombo.setSelectedIndex(formatCombo.getModel().getSize() > 0 ? 0 : -1); webLinkCombo.setSelectedIndex(webLinkCombo.getModel().getSize() > 0 ? 0 : -1); } } }); pickListMoreBtn = createButton(ELIPSES); pickListMoreBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { LocalizableItemIFace currentField = prevField; prevField = getSelectedFieldItem(); PickList selectedItem = (PickList) pickListCBX.getSelectedItem(); PickListEditorDlg dlg = new PickListEditorDlg( localizableIO.hasUpdatablePickLists() ? null : localizableIO, true, true); dlg.setTableInfo(tableInfo); dlg.setFieldInfo(fieldInfo); dlg.createUI(); dlg.setSize(400, 500); dlg.setVisible(true); if (!dlg.isCancelled()) { if (dlg.hasChanged()) { hasChanged = true; Vector<PickList> list = dlg.getNewPickLists(); DefaultComboBoxModel plCbxModel = (DefaultComboBoxModel) pickListCBX.getModel(); for (int i = 0; i < plCbxModel.getSize(); i++) { list.add((PickList) plCbxModel.getElementAt(i)); } Collections.sort(list); plCbxModel.removeAllElements(); plCbxModel.addElement(pickListNone); int inx = -1; int i = 0; for (PickList pl : list) { plCbxModel.addElement(pl); if (inx == -1 && selectedItem != null && ((selectedItem.getId() != null && pl.getId() != null && selectedItem.getId().equals(pl.getId())) || (selectedItem.getName() != null && pl.getName() != null && selectedItem.getName().equals(pl.getName())))) { inx = i; } i++; } pickListCBX.setSelectedIndex(inx + 1); } } prevField = currentField; } }); if (includeFormatAndAutoNumUI) { PanelBuilder inner = new PanelBuilder(new FormLayout("max(p;150px),2px,min", "p")); inner.add(pickListCBX, cc.xy(1, 1)); inner.add(pickListMoreBtn, cc.xy(3, 1)); formatterPanel.add(SL_PICKLIST, inner.getPanel()); } else { pb.add(pickListLbl = createI18NFormLabel(SL_PICKLIST, SwingConstants.RIGHT), cc.xy(3, y)); pb.add(pickListCBX, cc.xy(5, y)); pb.add(pickListMoreBtn, cc.xy(7, y)); y += 2; } nxtBtn = createI18NButton("SL_NEXT"); nxtEmptyBtn = createI18NButton("SL_NEXT_EMPTY"); fldSpellChkBtn = createI18NButton("SL_SPELL_CHECK"); //JPanel bbp = ButtonBarFactory.buildCenteredBar(adjustButtonArray(new JButton[] {nxtEmptyBtn, nxtBtn, fldSpellChkBtn})); //bbp.setBorder(BorderFactory.createEmptyBorder(5, 0, 0, 0)); //pb.add(bbp, cc.xywh(3, y, 8, 1)); nxtBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { next(); } }); nxtEmptyBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { nextEmpty(); } }); fldSpellChkBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (checker != null) { checker.spellCheck(fieldDescText); checker.spellCheck(fieldNameText); } } }); fieldHideChk.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { formHasChanged(); } }); fieldReqChk.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { formHasChanged(); } }); DocumentListener dl = new DocumentAdaptor() { @Override protected void changed(DocumentEvent e) { formHasChanged(); } }; fieldNameText.getDocument().addDocumentListener(dl); fieldDescText.getDocument().addDocumentListener(dl); /* if (formatTxt != null) { formatTxt.getDocument().addDocumentListener(dl); } */ SchemaI18NService.getInstance().checkCurrentLocaleMenu(); enableUIControls(false); setIgnoreChanges(false); }
From source file:edu.ku.brc.specify.tools.schemalocale.SchemaLocalizerPanel.java
License:Open Source License
/** * /* www. j av a 2 s.c o m*/ */ public void buildUI() { setIgnoreChanges(true); tablesList = createList(localizableIO.getContainerDisplayItems()); tablesList.setVisibleRowCount(14); tablesList.getSelectionModel().addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (!e.getValueIsAdjusting()) { startTableSelected(); } } }); CellConstraints cc = new CellConstraints(); // LocalizableContainerIFace Section Layout //tblSpellChkBtn = createButton(getResourceString("SL_SPELL_CHECK")); //JPanel tpbbp = ButtonBarFactory.buildCenteredBar(adjustButtonArray(new JButton[] {tblSpellChkBtn})); JScrollPane sp = new JScrollPane(tblDescText, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); //tblDescText.setRows(4); tblDescText.setLineWrap(true); tblDescText.setWrapStyleWord(true); // setting min and pref sizes to some bogus values so that textarea shrinks with dialog //tblDescText.setMinimumSize(new Dimension(50, 5)); //tblDescText.setPreferredSize(new Dimension(50, 5)); tblDescText.addKeyListener(new LengthWatcher(255)); tblNameText.addKeyListener(new LengthWatcher(64)); // data obj formatter control dataObjFmtLbl = createI18NFormLabel("DOF_DISPLAY_FORMAT"); dataObjFmtCbo = createComboBox(); dataObjFmtBtn = createButton("..."); fillDataObjFormatterCombo(); addFormatterActionListener(); // aggregator controls aggregatorLbl = createI18NFormLabel("DOA_AGGREGATION"); aggregatorCbo = createComboBox(); aggregatorBtn = createButton("..."); fillAggregatorCombo(); addAggregatorActionListener(); // WebLinks controls webLinkLbl = createI18NFormLabel("SL_WEBLINKS"); webLinkBtn = createButton("..."); addWebLinkActionListener(); int y = 1; PanelBuilder topInner = new PanelBuilder( new FormLayout("p,2px,f:p:g", "p,2px," + (includeHiddenUI ? "p,2px," : "") + "p,2px,p" + (useDisciplines ? ",2px,p" : "") + ",6px,p,2px,p,2px,p" // formatter, aggregator & weblink panel )); topInner.add(tblDescLbl = createI18NFormLabel("SL_LABEL", SwingConstants.RIGHT), cc.xy(1, y)); topInner.add(tblNameText, cc.xy(3, y)); y += 2; if (includeHiddenUI) { topInner.add(tblHideChk, cc.xy(3, y)); y += 2; } topInner.add(tblNameLbl = createI18NFormLabel("SL_DESC", SwingConstants.RIGHT), cc.xy(1, y)); topInner.add(sp, cc.xy(3, y)); y += 2; //topInner.add(tpbbp, cc.xywh(1, y, 3, 1)); y += 2; // formatter panel PanelBuilder fmtPanel = new PanelBuilder(new FormLayout("200px,r:m", "p")); fmtPanel.add(dataObjFmtCbo, cc.xy(1, 1)); fmtPanel.add(dataObjFmtBtn, cc.xy(2, 1)); // aggregator panel PanelBuilder aggPanel = new PanelBuilder(new FormLayout("200px,r:m", "p")); aggPanel.add(aggregatorCbo, cc.xy(1, 1)); aggPanel.add(aggregatorBtn, cc.xy(2, 1)); // WebLink panel PanelBuilder wlPanel = new PanelBuilder(new FormLayout("p,f:p:g", "p")); //wlPanel.add(webLinkCbo, cc.xy(1, 1)); wlPanel.add(webLinkBtn, cc.xy(1, 1)); topInner.add(dataObjFmtLbl, cc.xy(1, y)); topInner.add(fmtPanel.getPanel(), cc.xy(3, y)); y += 2; topInner.add(aggregatorLbl, cc.xy(1, y)); topInner.add(aggPanel.getPanel(), cc.xy(3, y)); y += 2; topInner.add(webLinkLbl, cc.xy(1, y)); topInner.add(wlPanel.getPanel(), cc.xy(3, y)); y += 2; JScrollPane tblsp = UIHelper.createScrollPane(tablesList); // LocalizableNameDescIFace fieldPanel = new FieldItemPanel(this, webLinkMgrCache, includeHiddenUI, true, isDBSchema, this, schemaType); fieldPanel.setStatusBar(statusBar); fieldPanel.setLocalizableIO(localizableIO); PanelBuilder pb = new PanelBuilder( new FormLayout("max(200px;p),4px,f:p:g", "p,4px,t:p,4px,p,4px,f:p:g,4px,p,4px,p"), this); pb.addSeparator(getResourceString("SL_TABLES"), cc.xywh(1, 1, 3, 1)); pb.add(tblsp, cc.xy(1, 3)); pb.add(topInner.getPanel(), cc.xy(3, 3)); pb.addSeparator(getResourceString("SL_FIELDS"), cc.xywh(1, 5, 3, 1)); pb.add(fieldPanel, cc.xywh(1, 7, 3, 1)); if (useDisciplines) { disciplineBasedPanel = new DisciplineBasedPanel(this, webLinkMgrCache); pb.add(disciplineBasedPanel, cc.xywh(1, 9, 3, 1)); } pb.getPanel().setBorder(BorderFactory.createEmptyBorder(6, 6, 6, 6)); /* tblSpellChkBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (checker != null) { checker.spellCheck(tblDescText); checker.spellCheck(tblNameText); } } }); */ tblHideChk.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { setHasChanged(true); setTableInfoChanged(true); } }); ActionListener comboAL = new ActionListener() { public void actionPerformed(ActionEvent e) { setHasChanged(true); setTableInfoChanged(true); // also mark the selected formatter or aggregator the Specify default (see bug 6163) setDefaultFormatterOrAggregator(e); } // sets the default formatter or aggregator according to the item selected in the combo box private void setDefaultFormatterOrAggregator(ActionEvent e) { Object src = e.getSource(); if (src instanceof JComboBox) { JComboBox combo = (JComboBox) src; int n = combo.getModel().getSize(); for (int i = 0; i < n; i++) { Object value = combo.getModel().getElementAt(i); if (value instanceof DataObjAggregator) { DataObjAggregator agg = (DataObjAggregator) value; // selected aggregator is also the default agg.setDefault(agg == combo.getModel().getSelectedItem()); } else if (value instanceof DataObjSwitchFormatter) { DataObjSwitchFormatter fmt = (DataObjSwitchFormatter) value; // selected aggregator is also the default fmt.setDefault(fmt == combo.getModel().getSelectedItem()); } } } } }; dataObjFmtCbo.addActionListener(comboAL); aggregatorCbo.addActionListener(comboAL); DocumentListener dl = new DocumentListener() { protected void changed() { if (!hasTableInfoChanged) { setTableInfoChanged(true); setHasChanged(true); } } public void changedUpdate(DocumentEvent e) { changed(); } public void insertUpdate(DocumentEvent e) { changed(); } public void removeUpdate(DocumentEvent e) { changed(); } }; tblNameText.getDocument().addDocumentListener(dl); tblDescText.getDocument().addDocumentListener(dl); //statusBar.setSectionText(0, currLocale.getDisplayName()); //tablesList.setEnabled(false); SchemaI18NService.getInstance().checkCurrentLocaleMenu(); enableUIControls(false); setIgnoreChanges(false); }
From source file:edu.ku.brc.specify.tools.schemalocale.SchemaToolsDlg.java
License:Open Source License
@Override public void createUI() { setOkLabel(getResourceString("CLOSE")); super.createUI(); setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); Vector<DisplayLocale> localeDisplays = new Vector<DisplayLocale>(); for (Locale locale : SchemaLocalizerDlg.getLocalesInUseInDB(schemaType)) { localeDisplays.add(new DisplayLocale(locale)); }/*from w ww. jav a2 s . co m*/ localeList = new JList(localeDisplays); JScrollPane sp = UIHelper.createScrollPane(localeList, true); CellConstraints cc = new CellConstraints(); PanelBuilder builder = new PanelBuilder(new FormLayout("p,2px,f:p:g", "p,2px,p,16px,p,4px,p,8px,p,10px")); builder.addSeparator(getResourceString("SL_LOCALES_IN_USE"), cc.xywh(1, 1, 3, 1)); builder.add(sp, cc.xywh(1, 3, 3, 1)); builder.addSeparator(getResourceString("SL_TASKS"), cc.xywh(1, 5, 3, 1)); builder.add(editSchemaBtn, cc.xy(1, 7)); builder.add(removeLocaleBtn, cc.xy(3, 7)); builder.add(exportSchemaLocBtn, cc.xy(1, 9)); builder.add(importSchemaLocBtn, cc.xy(3, 9)); builder.setDefaultDialogBorder(); contentPanel = builder.getPanel(); mainPanel.add(contentPanel, BorderLayout.CENTER); enableBtns(false); localeList.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { localeSelected(); } }); localeList.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent me) { if (me.getClickCount() == 2) { editSchema(); } } }); editSchemaBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { editSchema(); } }); removeLocaleBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { removeSchemaLocale(); } }); exportSchemaLocBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { exportSchemaLocales(); } }); importSchemaLocBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { chooseImportType(); } }); pack(); }
From source file:edu.ku.brc.specify.ui.NumberingSchemeDlg.java
License:Open Source License
@SuppressWarnings("unchecked") @Override/*from w w w . j a va2 s . c o m*/ public void createUI() { super.createUI(); mapToBtn = createIconBtn("Map", "WB_ADD_MAPPING_ITEM", new ActionListener() { public void actionPerformed(ActionEvent ae) { removeFromCurrentANS(); } }); unmapBtn = createIconBtn("Unmap", "WB_REMOVE_MAPPING_ITEM", new ActionListener() { public void actionPerformed(ActionEvent ae) { addToCurrentANS(); } }); typeCBX = UIHelper.createComboBox(new Object[] { "Catalog Numbers", "Acessions", "Other" }); numSchemeList = createList(new DefaultListModel()); nsCollList = createList(new DefaultListModel()); availNSList = createList(new DefaultListModel()); CellConstraints cc = new CellConstraints(); PanelBuilder topPB = new PanelBuilder(new FormLayout("f:p:g", "f:p:g")); topPB.add(createScrollPane(numSchemeList), cc.xy(1, 1)); PanelBuilder middlePanel = new PanelBuilder(new FormLayout("c:p:g", "p, 2px, p")); middlePanel.add(mapToBtn, cc.xy(1, 1)); middlePanel.add(unmapBtn, cc.xy(1, 3)); JPanel btnPanel = middlePanel.getPanel(); PanelBuilder outerMiddlePanel = new PanelBuilder(new FormLayout("c:p:g", "f:p:g, p, f:p:g")); outerMiddlePanel.add(btnPanel, cc.xy(1, 2)); PanelBuilder botPB = new PanelBuilder(new FormLayout("f:p:g,4px,p,4px,f:p:g", "p,2px,f:p:g")); botPB.add(createLabel("Included in Auto Number Scheme"), cc.xy(1, 1)); botPB.add(createLabel("Available to be Added"), cc.xy(5, 1)); botPB.add(outerMiddlePanel.getPanel(), cc.xywh(3, 3, 1, 1)); botPB.add(createScrollPane(nsCollList), cc.xy(1, 3)); botPB.add(createScrollPane(availNSList), cc.xy(5, 3)); PanelBuilder pb = new PanelBuilder(new FormLayout("p,f:p:g", "p,6px,p,2px,f:p:g,16px,f:p:g")); int y = 1; pb.add(typeCBX, cc.xy(1, y)); y += 2; pb.add(createLabel("Available Auto Numbering Schemes"), cc.xywh(1, y, 1, 1)); y += 2; pb.add(topPB.getPanel(), cc.xywh(1, y, 2, 1)); y += 2; pb.add(botPB.getPanel(), cc.xywh(1, y, 2, 1)); y += 2; pb.setDefaultDialogBorder(); contentPanel = pb.getPanel(); mainPanel.add(contentPanel, BorderLayout.CENTER); //loadSchemes(); pack(); numSchemeList.addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { if (!e.getValueIsAdjusting()) { ansSelected(); fillWithAvail(); } } }); nsCollList.addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { if (!e.getValueIsAdjusting()) { updateMoveBtns(false); } } }); availNSList.addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { if (!e.getValueIsAdjusting()) { updateMoveBtns(true); } } }); typeCBX.setSelectedIndex(0); fillCatalogNumANS(); typeCBX.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { JComboBox cb = (JComboBox) e.getSource(); if (e.getStateChange() == ItemEvent.SELECTED) { switch (cb.getSelectedIndex()) { case -1: break; case 0: fillCatalogNumANS(); break; case 1: fillAccNumANS(); break; case 2: fillOtherNumANS(); break; } } } }); DataProviderSessionIFace session = DataProviderFactory.getInstance().createSession(); try { for (Division div : (List<Division>) session.getDataList("FROM Division")) { div.forceLoad(); allDivisions.put(div.getId(), div); } for (Collection coll : (List<Collection>) session.getDataList("FROM Collection")) { coll.forceLoad(); allCollections.put(coll.getId(), coll); } } catch (Exception ex) { log.error(ex); edu.ku.brc.af.core.UsageTracker.incrHandledUsageCount(); edu.ku.brc.exceptions.ExceptionTracker.getInstance().capture(NumberingSchemeDlg.class, ex); } finally { if (session != null) { session.close(); } } okBtn.setEnabled(false); }