2011-07-10 22 views
0

私は次の問題があります。Netbeans RCPプラットフォームのカスタムオプションパネルで有効なメソッドが機能しない

Netbeansプラットフォームに基づいてRCPアプリケーションを実装しています。アプリケーションに新しいカスタムセカンダリオプションパネルを追加しました。

フィールドの変更時に変更されたメソッドを呼び出している部分を実装した適切なメソッドを設定した後、オプションパネル(ビュー)から有効なメソッドを変更して適切な検証を行いましたすべての分野で私が理解したところでは、これを保存する前にフォームを検証するためにコントローラから呼び出されます。唯一の問題は、このメソッドが私が見ることのできるものから呼び出されることはないということです。その中で行われた検証は有効化されません。

私が間違っていることを誰かに教えてもらえますか?ありがとうございました!

boolean valid() { 
    if (addressTextField.getText().isEmpty()) { 
     return false; 
    } 
    if (portTextField.getText().isEmpty()) { 
     return false; 
    } 
    if (userTextField.getText().isEmpty()) { 
     return false; 
    } 
    if (passwordPasswordField.getPassword().length == 0) { 
     return false; 
    } 
    if (databaseNameTextField.getText().isEmpty()) { 
     return false; 
    } 

    //TODO: change this back to the connection string builder after testing 
    String databaseURL = "jdbc:mysql://" + addressTextField.getText().trim() + ":" + portTextField.getText().trim() + "/" + databaseNameTextField.getText().trim() + 
      "?user=" + userTextField.getText().trim() + "&password=" + StringUtilities.charToString(passwordPasswordField.getPassword()); 
    if(!SQLDatabaseConnectionManagerImpl.testPing(databaseURL)) { 
     messageLabel.setText(""); 
     messageLabel.setForeground(Color.red); 
     messageLabel.setText(NbBundle.getBundle(ImportDataOptionsPanel.class).getString("ImportDataOptionsPanel.connectionErrorMessage.text")); 
     debug("Error on database connection with the following connection string: " + databaseURL, ImportDataOptionsPanel.IMPORTANT); 
     return false; 
    } 

    return true; 
} 

答えて

1

ヒントは、あなたが何かを変更したときにデータを検証しなければならない場合、コントローラに指示する必要があり、このコードのコメントに

// TODO listen to changes in form fields and call controller.changed() 

です。 はそう単純なシナリオでは、あなたは私が(私はセットアップリスナーが上の変更メソッドを呼び出すと述べ場所の上に見たことを、keyTypedにイベントをリッスンし、その後controller.changed()

private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) { 
    controller.changed(); 
} 
+0

まあと呼ばれる可能性がフィールドコンテンツが変更されたときのコントローラ)。私は見ようとします、おそらくバグがあります。ありがとう! – crazybyte

+0

私は間違ったイベントを使用していたようです。ありがとう! – crazybyte

関連する問題