Hello.  I need some help here please and i appreciate very much for any. I made 
this Add on in openoffice. The made a test to display a java frame. I want to 
place button events on this program but the problem is i tried implementing the 
ActionListener on the class (adding it on the public final class Thesis) but it 
wont work (it says its abstact or smthing). Now i don't now how to have events 
for the buttons im planning to place: 

Here's the code: 

package org.yourorg.here; 

import com.sun.star.uno.UnoRuntime; 
import com.sun.star.uno.XComponentContext; 
import com.sun.star.lib.uno.helper.Factory; 
import com.sun.star.lang.XSingleComponentFactory; 
import com.sun.star.registry.XRegistryKey; 
import com.sun.star.lib.uno.helper.WeakBase; 


import com.sun.star.lang.XMultiComponentFactory; 
import com.sun.star.frame.XDesktop; 
import com.sun.star.frame.XFrame; 
import com.sun.star.frame.XModel; 
import com.sun.star.text.XTextDocument; 
import com.sun.star.text.XText; 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.lang.String; 



public final class Thesis extends WeakBase 
implements com.sun.star.lang.XServiceInfo, 
com.sun.star.frame.XDispatchProvider, 
com.sun.star.lang.XInitialization, 
com.sun.star.frame.XDispatch 

{ 
private final XComponentContext m_xContext; 
private com.sun.star.frame.XFrame m_xFrame; 
private static final String m_implementationName = Thesis.class.getName(); 
private static final String[] m_serviceNames = { 
"com.sun.star.frame.ProtocolHandler" }; 


public Thesis( XComponentContext context ) 
{ 
m_xContext = context; 
}; 

public static XSingleComponentFactory __getComponentFactory( String 
sImplementationName ) { 
XSingleComponentFactory xFactory = null; 

if ( sImplementationName.equals( m_implementationName ) ) 
xFactory = Factory.createComponentFactory(Thesis.class, m_serviceNames); 
return xFactory; 
} 

public static boolean __writeRegistryServiceInfo( XRegistryKey xRegistryKey ) { 
return Factory.writeRegistryServiceInfo(m_implementationName, 
m_serviceNames, 
xRegistryKey); 
} 

// com.sun.star.lang.XServiceInfo: 
public String getImplementationName() { 
return m_implementationName; 
} 

public boolean supportsService( String sService ) { 
int len = m_serviceNames.length; 

for( int i=0; i < len; i++) { 
if (sService.equals(m_serviceNames[i])) 
return true; 
} 
return false; 
} 

public String[] getSupportedServiceNames() { 
return m_serviceNames; 
} 

// com.sun.star.frame.XDispatchProvider: 
public com.sun.star.frame.XDispatch queryDispatch( com.sun.star.util.URL aURL, 
String sTargetFrameName, 
int iSearchFlags ) 
{ 
if ( aURL.Protocol.compareTo("org.yourorg.here.thesis:") == 0 ) 
{ 
if ( aURL.Path.compareTo("Command1") == 0 ) 
return this; 
} 
return null; 
} 

// com.sun.star.frame.XDispatchProvider: 
public com.sun.star.frame.XDispatch[] queryDispatches( 
com.sun.star.frame.DispatchDescriptor[] seqDescriptors ) 
{ 
int nCount = seqDescriptors.length; 
com.sun.star.frame.XDispatch[] seqDispatcher = 
new com.sun.star.frame.XDispatch[seqDescriptors.length]; 

for( int i=0; i < nCount; ++i ) 
{ 
seqDispatcher[i] = queryDispatch(seqDescriptors[i].FeatureURL, 
seqDescriptors[i].FrameName, 
seqDescriptors[i].SearchFlags ); 
} 
return seqDispatcher; 
} 

// com.sun.star.lang.XInitialization: 
public void initialize( Object[] object ) 
throws com.sun.star.uno.Exception 
{ 
if ( object.length > 0 ) 
{ 
m_xFrame = (com.sun.star.frame.XFrame)UnoRuntime.queryInterface( 
com.sun.star.frame.XFrame.class, object[0]); 
} 
} 

// com.sun.star.frame.XDispatch: 
public void dispatch( com.sun.star.util.URL aURL, 
com.sun.star.beans.PropertyValue[] aArguments ) 
{ 
if ( aURL.Protocol.compareTo("org.yourorg.here.thesis:") == 0 ) 
{ 
if ( aURL.Path.compareTo("Command1") == 0 ) 
{ 
// add your own code here 
try 
{ 
XMultiComponentFactory xMCF = m_xContext.getServiceManager(); 
Object oDesktop = xMCF.createInstanceWithContext( 
"com.sun.star.frame.Desktop", m_xContext); 
XDesktop xDesktop = (XDesktop) 
UnoRuntime.queryInterface(XDesktop.class, oDesktop); 
XFrame xFrame = xDesktop.getCurrentFrame(); 
XModel xModel = xFrame.getController().getModel(); 
XTextDocument xTextDoc = 
(XTextDocument)UnoRuntime.queryInterface( 
XTextDocument.class, xModel); 
XText xText = xTextDoc.getText(); 
String docuString = xText.getString(); 

GUI(); 
} 
catch (com.sun.star.uno.Exception ex) 
{ 
ex.printStackTrace(); 
} 
return; 
} 
} 
} 

public void addStatusListener( com.sun.star.frame.XStatusListener xControl, 
com.sun.star.util.URL aURL ) 
{ 
// add your own code here 
} 

public void removeStatusListener( com.sun.star.frame.XStatusListener xControl, 
com.sun.star.util.URL aURL ) 
{ 
// add your own code here 
} 

public static void GUI() 

{ 
JFrame.setDefaultLookAndFeelDecorated(true); 
JFrame frame = new JFrame("Test Frame"); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

frame.pack(); 
frame.setVisible(true); 
} 

} 

Can sm1 please help me on how could i place button events on the frame (public 
static void GUI) 

Thank you very much! 

Vic


 921
 

 
      On this day...
         I see clearly...
           
            Everything has come to life...



         
---------------------------------
Looking for earth-friendly autos? 
 Browse Top Cars by "Green Rating" at Yahoo! Autos' Green Center.  

Reply via email to