bool DefaultTreeCellEditor::stopCellEditing(void) { if(_EditingValue.type() == typeid(std::string)) { getDefaultStringEditor()->removeActionListener(&_DefaultTextFieldEditorListener); getDefaultStringEditor()->removeFocusListener(&_DefaultTextFieldEditorListener); getDefaultStringEditor()->removeKeyListener(&_DefaultTextFieldEditorListener); } else { getDefaultEditor()->removeActionListener(&_DefaultTextFieldEditorListener); getDefaultEditor()->removeFocusListener(&_DefaultTextFieldEditorListener); getDefaultEditor()->removeKeyListener(&_DefaultTextFieldEditorListener); } return Inherited::stopCellEditing(); }
ComponentTransitPtr DefaultTreeCellEditor::getComponent(void) const { if(_EditingValue.type() == typeid(std::string)) { return ComponentTransitPtr(getDefaultStringEditor()); } else { return ComponentTransitPtr(getDefaultEditor()); } }
ComponentTransitPtr DefaultTreeCellEditor::getTreeCellEditorComponent(Tree* const TheTree, const boost::any& Value, bool IsSelected, bool IsExpanded, UInt32 row) { _EditingValue = Value; if(_EditingValue.empty()){ return ComponentTransitPtr(NULL); } if(_EditingValue.type() == typeid(std::string)) { //Use String Text Field As Editing Component std::string tempString; try { tempString = lexical_cast(_EditingValue); } catch (boost::bad_lexical_cast &) { //Could not convert to string } getDefaultStringEditor()->setText(tempString); getDefaultStringEditor()->selectAll(); getDefaultStringEditor()->setCaretPosition(getDefaultStringEditor()->getText().size()); _EditorActionConnection = getDefaultStringEditor()->connectActionPerformed(boost::bind(&DefaultTreeCellEditor::handleEditorAction, this, _1)); _EditorFocusLostConnection = getDefaultStringEditor()->connectFocusLost(boost::bind(&DefaultTreeCellEditor::handleEditorFocusLost, this, _1)); _EditorKeyPressedConnection = getDefaultStringEditor()->connectKeyPressed(boost::bind(&DefaultTreeCellEditor::handleEditorKeyPressed, this, _1)); return ComponentTransitPtr(getDefaultStringEditor()); } else { //Use Default Text Field As Editing Component std::string tempString; getDefaultEditor()->setText(tempString); getDefaultEditor()->selectAll(); getDefaultEditor()->setCaretPosition(getDefaultEditor()->getText().size()); _EditorActionConnection = getDefaultEditor()->connectActionPerformed(boost::bind(&DefaultTreeCellEditor::handleEditorAction, this, _1)); _EditorFocusLostConnection = getDefaultEditor()->connectFocusLost(boost::bind(&DefaultTreeCellEditor::handleEditorFocusLost, this, _1)); _EditorKeyPressedConnection = getDefaultEditor()->connectKeyPressed(boost::bind(&DefaultTreeCellEditor::handleEditorKeyPressed, this, _1)); return ComponentTransitPtr(getDefaultEditor()); } }
ComponentRefPtr DefaultTreeCellEditor::getTreeCellEditorComponent(TreeRefPtr TheTree, const boost::any& Value, bool IsSelected, bool IsExpanded, UInt32 row) { _EditingValue = Value; if(_EditingValue.empty()){ return NULL; } if(_EditingValue.type() == typeid(std::string)) { //Use String Text Field As Editing Component std::string tempString; try { tempString = lexical_cast(_EditingValue); } catch (boost::bad_lexical_cast &) { //Could not convert to string } getDefaultStringEditor()->setText(tempString); getDefaultStringEditor()->selectAll(); getDefaultStringEditor()->setCaretPosition(getDefaultStringEditor()->getText().size()); getDefaultStringEditor()->addActionListener(&_DefaultTextFieldEditorListener); getDefaultStringEditor()->addFocusListener(&_DefaultTextFieldEditorListener); getDefaultStringEditor()->addKeyListener(&_DefaultTextFieldEditorListener); return getDefaultStringEditor(); } else { //Use Default Text Field As Editing Component std::string tempString; getDefaultEditor()->setText(tempString); getDefaultEditor()->selectAll(); getDefaultEditor()->setCaretPosition(getDefaultEditor()->getText().size()); getDefaultEditor()->addActionListener(&_DefaultTextFieldEditorListener); getDefaultEditor()->addFocusListener(&_DefaultTextFieldEditorListener); getDefaultEditor()->addKeyListener(&_DefaultTextFieldEditorListener); return getDefaultEditor(); } }