2011-08-20 4 views
8

मैं जीईएफ का उपयोग कर रहा हूं। मेरे पास कुछ "बक्से" लागू किए गए ग्राफिकल संपादक हैं। अब, मैं प्रत्येक बॉक्स (आयताकार) में एक डबल-क्लिक श्रोता जोड़ना चाहता हूं। मैंने ग्राफ़िकल व्यूअर में श्रोता जोड़ने की कोशिश की लेकिन यह काम नहीं किया।मेरे जीईएफ संपादक में डबल-क्लिक श्रोता कैसे जोड़ें?

उत्तर

0

मैं GEF अपने आप से परिचित नहीं हूँ, लेकिन मैं दस्तावेज में यह पाया:

  1. GraphicalEditor abstraction sets the EditDomain - handler for editing events
  2. EditDomain interface with methods for handling events - e.g. double click
  3. Tutorial on how to implement editing of models through GUI in GEF (using EditDomain)
+0

जहां तक ​​मैं इसे देख सकता हूं, समस्या से पूरी तरह से मदद नहीं करता है। प्रत्येक 'ऑब्जेक्ट' में एडिटपार्ट होता है और ऑब्जेक्ट्स के साथ इंटरैक्टिंग इन एडिटपार्ट्स का उपयोग करके किया जाता है। आपके उत्तर में संपादक के एपीआई को ही पसंद है। तो यदि डबल-क्लिक पकड़ना और उस पर प्रतिक्रिया करना संभव होगा, तो यह पसंदीदा तरीका नहीं है क्योंकि आप जीईएफ ढांचे को बाधित कर रहे हैं। अगर मैं गलत हूं कृपया मुझे सही। – Veger

17

जिसके लिए "बॉक्स" की GraphicalEditPart में आप श्रोता जोड़ना चाहते हैं, आपको performRequest(Request req) विधि को ओवरराइड करना होगा। जब ढांचा भाग के आकृति पर डबल-क्लिक की पहचान करता है, तो यह इस विधि को अनुरोध के साथ कॉल करता है जिसमें req.getType()==RequestConstants.REQ_OPEN है। आप यहां से ले सकते हैं। पूरा कोड का परीक्षण करने के लिए अपने काम करता है कि:

@Override 
public void performRequest(Request req) { 
    if(req.getType() == RequestConstants.REQ_OPEN) { 
     System.out.println("requested double-click."); 
    } 
} 

आशा इस काम कर देता है।

+0

बहुत बहुत धन्यवाद, यह काम करता है :) – jean24

+1

तो कृपया उत्तर को सही – vainolo

+0

@vainolo - धन्यवाद के रूप में चिह्नित करें। सहायक :) – Pushkar

0
viewer.getControl().addListener(SWT.MouseDoubleClick, new Listener() { 

     @Override 
     public void handleEvent(Event event) { 
     //write the double click action 
    }); 

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

  • कोई संबंधित समस्या नहीं^_^