private boolean addEditExpression(QueryTokens.DefaultExpression defaultToken, String title)
   {
      // Method Instances.
      JPanel editExpressionPanel, northPanel;

      JLabel aliasLabel;
      JTextField aliasTextField;
      JTextArea expressionTextArea;
      JScrollPane scrollPane;
      Border outerBorder;

      InputDialog editExpressionDialog;

      // Setup the main container, & resources.

      editExpressionPanel = new JPanel(new BorderLayout());
      outerBorder = BorderFactory.createCompoundBorder(BorderFactory.createEtchedBorder(),
                                                       BorderFactory.createLoweredBevelBorder());
      editExpressionPanel.setBorder(BorderFactory.createCompoundBorder(
         outerBorder, BorderFactory.createEmptyBorder(5, 5, 5, 5)));

      northPanel = new JPanel(new BorderLayout(2, 2));

      // Alias Label
      aliasLabel = new JLabel(resourceAlias + " : ");
      northPanel.add(aliasLabel, BorderLayout.WEST);

      // Alias
      if (defaultToken.isAliasSet())
         aliasTextField = new JTextField(defaultToken.getAlias());
      else
         aliasTextField = new JTextField();
      aliasTextField.setBorder(BorderFactory.createLoweredBevelBorder());

      northPanel.add(aliasTextField, BorderLayout.CENTER);
      editExpressionPanel.add(northPanel, BorderLayout.NORTH);

      // Expression Entry Area
      if (!defaultToken.isEmpty())
         expressionTextArea = new JTextArea(defaultToken.getValue());
      else
         expressionTextArea = new JTextArea();

      expressionTextArea.setWrapStyleWord(true);
      expressionTextArea.setLineWrap(true);
      expressionTextArea.setColumns(45);
      expressionTextArea.setRows(10);
      scrollPane = new JScrollPane(expressionTextArea);
      scrollPane.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(8, 0, 0, 0),
         BorderFactory.createLoweredBevelBorder()));

      editExpressionPanel.add(scrollPane, BorderLayout.CENTER);

      // Setup the dialog with the content.
      Object content[] = {editExpressionPanel};

      editExpressionDialog = new InputDialog(null, title, resourceOK,
                                             resourceCancel, content, null);
      editExpressionDialog.pack();
      editExpressionDialog.setResizable(true);
      editExpressionDialog.center();
      editExpressionDialog.setVisible(true);

      // Collect the join options and modify the
      // query model.

      if (editExpressionDialog.isActionResult())
      {
         if (queryBuilderPane.sqlBrowserViewPanel.getQueryItem()
               instanceof BrowserItems.DiagramQueryTreeItem)
         {
            if (aliasTextField.getText() == null || aliasTextField.getText().trim().length() == 0)
            {
               JOptionPane.showMessageDialog(queryBuilderPane, resourceValidAlias, "",
                  JOptionPane.WARNING_MESSAGE);
               return false;
            }
            
            String fieldName, text;
            
            if (defaultToken.getAlias() != null)
            {
               text = aliasTextField.getText();
               fieldName = defaultToken.getAlias();
            }
            else
            {
               text = expressionTextArea.getText();
               fieldName = defaultToken.getValue();
            }
            BrowserItems.DiagramQueryTreeItem dqti = (BrowserItems.DiagramQueryTreeItem)
                  queryBuilderPane.sqlBrowserViewPanel.getQueryItem();
            reloadParentWithAlias(dqti, fieldName, text);
            
         }
         defaultToken.setValue(expressionTextArea.getText());
         defaultToken.setAlias(aliasTextField.getText());
         return true;
      }
      editExpressionDialog.dispose();
      return false;
   }