/** searches for a string in the cells */ public void search() { String searchString; // display dialog searchString = ComponentHelper.showInputBox( getParent(), "Search...", "Enter the string to search for", m_LastSearch); if (searchString != null) m_LastSearch = searchString; getTable().setSearchString(searchString); }
/** renames the current attribute */ public void renameAttribute() { ArffSortedTableModel model; String newName; // no column selected? if (m_CurrentCol == -1) return; model = (ArffSortedTableModel) m_TableArff.getModel(); // really an attribute column? if (model.getAttributeAt(m_CurrentCol) == null) return; newName = ComponentHelper.showInputBox( getParent(), "Rename attribute...", "Enter new Attribute name", model.getAttributeAt(m_CurrentCol).name()); if (newName == null) return; setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); model.renameAttributeAt(m_CurrentCol, newName); setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); }
/** * sets the specified values in a column to a new value * * @param o the menu item */ private void setValues(Object o) { String msg; String title; String value; String valueNew; int i; ArffSortedTableModel model; value = ""; valueNew = ""; if (o == menuItemSetMissingValues) { title = "Replace missing values..."; msg = "New value for MISSING values"; } else if (o == menuItemSetAllValues) { title = "Set all values..."; msg = "New value for ALL values"; } else if (o == menuItemReplaceValues) { title = "Replace values..."; msg = "Old value"; } else return; value = ComponentHelper.showInputBox(m_TableArff.getParent(), title, msg, m_LastSearch); // cancelled? if (value == null) return; m_LastSearch = value; // replacement if (o == menuItemReplaceValues) { valueNew = ComponentHelper.showInputBox(m_TableArff.getParent(), title, "New value", m_LastReplace); if (valueNew == null) return; m_LastReplace = valueNew; } model = (ArffSortedTableModel) m_TableArff.getModel(); model.setNotificationEnabled(false); // undo addUndoPoint(); model.setUndoEnabled(false); String valueCopy = value; // set value for (i = 0; i < m_TableArff.getRowCount(); i++) { if (o == menuItemSetAllValues) { if (valueCopy.equals("NaN") || valueCopy.equals("?")) { value = null; } model.setValueAt(value, i, m_CurrentCol); } else if ((o == menuItemSetMissingValues) && model.isMissingAt(i, m_CurrentCol)) model.setValueAt(value, i, m_CurrentCol); else if ((o == menuItemReplaceValues) && model.getValueAt(i, m_CurrentCol).toString().equals(value)) model.setValueAt(valueNew, i, m_CurrentCol); } model.setUndoEnabled(true); model.setNotificationEnabled(true); model.notifyListener( new TableModelEvent(model, 0, model.getRowCount(), m_CurrentCol, TableModelEvent.UPDATE)); // refresh m_TableArff.repaint(); }