summaryrefslogtreecommitdiff
path: root/odk/examples/DevelopersGuide/Charts
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2003-06-10 09:09:56 +0000
committerVladimir Glazounov <vg@openoffice.org>2003-06-10 09:09:56 +0000
commit4fccd3940299b2261187b61790d56c6a5ec88875 (patch)
tree748740be9c70cc8ad855f7724c0b0267f41017cd /odk/examples/DevelopersGuide/Charts
parent25d0a1caa43a9845ef8d97a1e759b8e2bd6333f8 (diff)
INTEGRATION: CWS sdk02 (1.1.2); FILE ADDED
2003/05/09 10:36:56 jsc 1.1.2.1: #109045# insert new and remove example zip file
Diffstat (limited to 'odk/examples/DevelopersGuide/Charts')
-rw-r--r--odk/examples/DevelopersGuide/Charts/SelectionChangeListener.java157
-rw-r--r--odk/examples/DevelopersGuide/Charts/bullet.gifbin0 -> 335 bytes
2 files changed, 157 insertions, 0 deletions
diff --git a/odk/examples/DevelopersGuide/Charts/SelectionChangeListener.java b/odk/examples/DevelopersGuide/Charts/SelectionChangeListener.java
new file mode 100644
index 000000000000..b9c2d06c8693
--- /dev/null
+++ b/odk/examples/DevelopersGuide/Charts/SelectionChangeListener.java
@@ -0,0 +1,157 @@
+// __________ Imports __________
+
+// base classes
+import com.sun.star.uno.XInterface;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.lang.*;
+import com.sun.star.frame.XModel;
+import com.sun.star.frame.XController;
+
+// application specific classes
+import com.sun.star.chart.*;
+
+import com.sun.star.view.XSelectionChangeListener;
+import com.sun.star.view.XSelectionSupplier;
+
+import com.sun.star.table.CellRangeAddress;
+import com.sun.star.table.XCellRange;
+import com.sun.star.sheet.XCellRangeAddressable;
+
+import com.sun.star.awt.Point;
+import com.sun.star.awt.Size;
+
+// Exceptions
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.RuntimeException;
+
+// for output messages
+import javax.swing.JOptionPane;
+
+// __________ Implementation __________
+
+/** Create a spreadsheet add some data.
+ Create a presentation and add a chart.
+ Connect the chart to a calc range via a listener
+
+ Note: This example does not work in StarOffice 6.0. It will be available
+ in the StarOffice Accessibility release.
+
+ @author Bj&ouml;rn Milcke
+ */
+public class SelectionChangeListener implements XSelectionChangeListener
+{
+ public static void main( String args[] )
+ {
+ SelectionChangeListener aMySelf = new SelectionChangeListener( args );
+
+ aMySelf.run();
+ }
+
+ public SelectionChangeListener( String args[] )
+ {
+ Helper aHelper = new Helper( args );
+
+ CalcHelper aCalcHelper = new CalcHelper( aHelper.createSpreadsheetDocument() );
+
+ // insert a cell range with 4 columns and 12 rows filled with random numbers
+ XCellRange aRange = aCalcHelper.insertRandomRange( 4, 12 );
+ CellRangeAddress aRangeAddress = ((XCellRangeAddressable) UnoRuntime.queryInterface(
+ XCellRangeAddressable.class, aRange)).getRangeAddress();
+
+ // change view to sheet containing the chart
+ aCalcHelper.raiseChartSheet();
+
+ // the unit for measures is 1/100th of a millimeter
+ // position at (1cm, 1cm)
+ Point aPos = new Point( 1000, 1000 );
+
+ // size of the chart is 15cm x 9.271cm
+ Size aExtent = new Size( 15000, 9271 );
+
+ // insert a new chart into the "Chart" sheet of the
+ // spreadsheet document
+ maChartDocument = aCalcHelper.insertChart(
+ "SampleChart",
+ aRangeAddress,
+ aPos,
+ aExtent,
+ "com.sun.star.chart.XYDiagram" );
+ }
+
+ // ____________________
+
+ public void run()
+ {
+ boolean bTrying = true;
+
+ while( bTrying )
+ {
+ // start listening for selection changes
+ XSelectionSupplier aSelSupp = (XSelectionSupplier) UnoRuntime.queryInterface(
+ XSelectionSupplier.class,
+ (((XModel) UnoRuntime.queryInterface(
+ XModel.class, maChartDocument )).getCurrentController()) );
+ if( aSelSupp != null )
+ {
+ aSelSupp.addSelectionChangeListener( this );
+ System.out.println( "Successfully attached as selection change listener" );
+ bTrying = false;
+ }
+
+ // start listening for death of Controller
+ XComponent aComp = (XComponent) UnoRuntime.queryInterface( XComponent.class, aSelSupp );
+ if( aComp != null )
+ {
+ aComp.addEventListener( this );
+ System.out.println( "Successfully attached as dispose listener" );
+ }
+
+ try
+ {
+ Thread.currentThread().sleep( 500 );
+ }
+ catch( InterruptedException ex )
+ {
+ }
+ }
+ }
+
+ // ____________________
+
+ // XEventListener (base of XSelectionChangeListener)
+ public void disposing( EventObject aSourceObj )
+ {
+ System.out.println( "disposing called. detaching as listener" );
+
+ // stop listening for selection changes
+ XSelectionSupplier aCtrl = (XSelectionSupplier) UnoRuntime.queryInterface(
+ XSelectionSupplier.class, aSourceObj );
+ if( aCtrl != null )
+ aCtrl.removeSelectionChangeListener( this );
+
+ // remove as dispose listener
+ XComponent aComp = (XComponent) UnoRuntime.queryInterface( XComponent.class, aSourceObj );
+ if( aComp != null )
+ aComp.removeEventListener( this );
+
+ // bail out
+ System.exit( 0 );
+ }
+
+ // ____________________
+
+ // XSelectionChangeListener
+ public void selectionChanged( EventObject aEvent )
+ {
+ XController aCtrl = (XController) UnoRuntime.queryInterface( XController.class, aEvent.Source );
+ if( aCtrl != null )
+ {
+ JOptionPane.showMessageDialog( null, "Selection has changed", "Got new Event",
+ JOptionPane.INFORMATION_MESSAGE );
+ }
+ }
+
+ // __________ private __________
+
+ private XChartDocument maChartDocument;
+}
diff --git a/odk/examples/DevelopersGuide/Charts/bullet.gif b/odk/examples/DevelopersGuide/Charts/bullet.gif
new file mode 100644
index 000000000000..0f8efd140b98
--- /dev/null
+++ b/odk/examples/DevelopersGuide/Charts/bullet.gif
Binary files differ