public NumberNodeEditor(NumberNode node) {
    
    this.m_Node = node;
    String name = node.getText();
    Number value = node.getValue();
    int iteratorType = node.getIteratorType();
    boolean showCheckBox = node.getCheckable();
    boolean selected = node.getSelected();
    
    textForeground = UIManager.getColor("Tree.textForeground");
    textBackground = UIManager.getColor("Tree.textBackground");
    
    setForeground(textForeground);
    setBackground(textBackground);
    
    Font fontValue;
    fontValue = UIManager.getFont("Tree.font");
    
    if (showCheckBox) {
      m_SelectedCheckBox = new JCheckBox();
      m_SelectedCheckBox.setSelected(selected);
      m_SelectedCheckBox.setForeground(textForeground);
      m_SelectedCheckBox.setBackground(textBackground);
      m_SelectedCheckBox.addItemListener(this);
      add(m_SelectedCheckBox);
    }
    
    m_Label = new JLabel(name);
    if (fontValue != null) {
      m_Label.setFont(fontValue);
    }
    m_Label.setForeground(textForeground);
    m_Label.setBackground(textBackground);
    add(m_Label);
    
    if (iteratorType != NumberNode.NOT_ITERATOR) {
      updateIteratorButton();
      m_IteratorButton.setForeground(textForeground);
      m_IteratorButton.setBackground(textBackground);
      add(m_IteratorButton);
    }
    
    NumberFormat numberFormat = null;
    try {
      numberFormat = node.getNumberFormat();
    } catch (NumberClassNotFoundException e) {
      e.printStackTrace();
    }
    
    m_NumberField = new JFormattedTextField(numberFormat);
    m_NumberField.setValue(value);
    m_NumberField.setColumns(10);
    m_NumberField.setForeground(textForeground);
    m_NumberField.setBackground(textBackground);
    
    m_NumberField.addPropertyChangeListener(this);
    
    add(m_NumberField);
    
    if (!selected && showCheckBox) {
      m_Label.setEnabled(false);
      if (m_IteratorButton != null)
	m_IteratorButton.setEnabled(false);
      m_NumberField.setEnabled(false);
    }
  }