2012-03-13 8 views
5

कोड:ग्रहण StatusManager विस्तार नहीं दिखाए जाते

Job job = new Job("Connect to Database") { 
      @Override 
      protected IStatus run(IProgressMonitor monitor) { 
       // 即使是在正常的情况下,某些版本的DB2的连接建立时间也比较长。。。 
       monitor.beginTask("正在建立到数据库的连接 ...", 100); 
       try { 
        Thread.sleep(3000); 
        database = new Database(cp.getName(), cp.getConnection()); 
       } catch (Exception e) { 
        e.printStackTrace(); 
        IStatus sqlErrorStatus = new Status(IStatus.ERROR, "amarsoft.dbmp", e.getMessage(), null); 
        StatusManager.getManager().handle(sqlErrorStatus, StatusManager.SHOW); 
       } 
       monitor.done(); 
       return Status.OK_STATUS; 
      } 
     }; 

enter image description here

मैं इसे कैसे अपवाद के स्टैक ट्रेस प्रदर्शित उपयोगकर्ता 'विवरण' बटन क्लिक करते हैं कर सकते हैं?

उत्तर

6

स्थिति संवाद का डिफ़ॉल्ट विवरण क्षेत्र प्रदर्शन अपवाद स्टैक ट्रेस नहीं है।

यदि आपके पास अपना ग्रहण product है तो आप org.eclipse.ui.statusHandlers एक्सटेंशन बिंदु का उपयोग कर स्थिति संवाद के विवरण और समर्थन क्षेत्रों को कस्टमाइज़ कर सकते हैं। आप त्रुटि लॉग देखने के विवरण संवाद के लिए स्टैक ट्रेस उपलब्ध बनाने Status बजाय null को तक

void configureStatusDialog(WorkbenchStatusDialogManager statusDialog) { 
    statusDialog.enableDefaultSupportArea(true); 
    statusDialog.setDetailsAreaProvider(new CustomStatusAreaProvider()); 
} 

class CustomStatusAreaProvider extends AbstractStatusAreaProvider { 
    Control createSupportArea(Composite parent, StatusAdapter statusAdapter) { 
     //Create and return details area 
    } 
} 



अपवाद गुजर: आप WorkbenchErrorHandler का विस्तार करने और configureStatusDialog(...) विधि ओवरराइड करने के लिए की आवश्यकता होगी ।

+0

काम नहीं करते हैं। यह सिर्फ विस्तार क्षेत्र में दो बार संदेश (# अपवाद .getMessage द्वारा लौटाई गई स्ट्रिंग) प्रदर्शित करता है। – CaiNiaoCoder

+0

@CaiNiaoCoder आप सही हैं, मुझे इसे पहले जांचना चाहिए था! मेरा जवाब अपडेट किया गया। –

संबंधित मुद्दे