From d10c15dfb38c0423c5da804a693b623dcf918936 Mon Sep 17 00:00:00 2001 From: Tobias Oberlies Date: Wed, 21 Mar 2012 13:45:56 +0100 Subject: [PATCH] Starting point for exercise 5 - Constructed from executing exercise 4 --- .../META-INF/MANIFEST.MF | 2 +- .../tychodemo.bundle.tests/build.properties | 2 +- .../tychodemo.bundle.tests/pom.xml | 12 +- .../src/tychodemo/SimpleTest.java | 18 - .../bundle/handlers/AboutHandlerTest.java | 18 + .../tychodemo.bundle/Application.e4xmi | 52 +++ .../tychodemo.bundle/META-INF/MANIFEST.MF | 24 +- .../tychodemo.bundle/build.properties | 12 +- .../tychodemo.bundle/css/default.css | 0 .../expected_rcp_screenshot.png | Bin 4718 -> 0 bytes .../tychodemo.bundle/icons/alt_about.gif | Bin 9340 -> 0 bytes .../tychodemo.bundle/icons/alt_launcher.icns | Bin 51159 -> 0 bytes .../tychodemo.bundle/icons/alt_launcher.ico | Bin 26694 -> 0 bytes .../tychodemo.bundle/icons/alt_launcher.xpm | 307 ------------------ .../tychodemo.bundle/icons/alt_window_16.gif | Bin 637 -> 0 bytes .../tychodemo.bundle/icons/alt_window_32.gif | Bin 1192 -> 0 bytes .../tychodemo.bundle/icons/sample.gif | Bin 0 -> 983 bytes .../tychodemo.bundle/icons/save_edit.gif | Bin 0 -> 639 bytes .../tychodemo.bundle/plugin.xml | 34 +- .../tychodemo.bundle/pom.xml | 12 +- .../tychodemo.bundle/splash.bmp | Bin 135600 -> 0 bytes .../src/tychodemo/bundle/Activator.java | 53 +-- .../src/tychodemo/bundle/Application.java | 46 --- .../bundle/ApplicationActionBarAdvisor.java | 20 -- .../bundle/ApplicationWorkbenchAdvisor.java | 18 - .../ApplicationWorkbenchWindowAdvisor.java | 25 -- .../src/tychodemo/bundle/Perspective.java | 10 - .../bundle/handlers/AboutHandler.java | 29 ++ .../bundle/handlers/OpenHandler.java | 33 ++ .../bundle/handlers/QuitHandler.java | 34 ++ .../bundle/handlers/SaveHandler.java | 64 ++++ .../tychodemo.bundle/tychodemo.bundle.product | 105 ++++++ .../tychodemo.bundle/tychodemo.launch | 31 -- .../tychodemo.feature/pom.xml | 14 +- .../tychodemo.parent/pom.xml | 28 +- .../tychodemo.repository/pom.xml | 14 +- 36 files changed, 427 insertions(+), 590 deletions(-) delete mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/src/tychodemo/SimpleTest.java create mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/src/tychodemo/bundle/handlers/AboutHandlerTest.java create mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/Application.e4xmi create mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/css/default.css delete mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/expected_rcp_screenshot.png delete mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/alt_about.gif delete mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/alt_launcher.icns delete mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/alt_launcher.ico delete mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/alt_launcher.xpm delete mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/alt_window_16.gif delete mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/alt_window_32.gif create mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/sample.gif create mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/save_edit.gif delete mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/splash.bmp delete mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/Application.java delete mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/ApplicationActionBarAdvisor.java delete mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/ApplicationWorkbenchAdvisor.java delete mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/ApplicationWorkbenchWindowAdvisor.java delete mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/Perspective.java create mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/handlers/AboutHandler.java create mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/handlers/OpenHandler.java create mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/handlers/QuitHandler.java create mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/handlers/SaveHandler.java create mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/tychodemo.bundle.product delete mode 100644 exercises/Exercise_05_Add_Product/tychodemo.bundle/tychodemo.launch diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/META-INF/MANIFEST.MF b/exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/META-INF/MANIFEST.MF index c960800..35db80e 100644 --- a/exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/META-INF/MANIFEST.MF +++ b/exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/META-INF/MANIFEST.MF @@ -4,5 +4,5 @@ Bundle-Name: Tests Bundle-SymbolicName: tychodemo.bundle.tests Bundle-Version: 1.0.0.qualifier Fragment-Host: tychodemo.bundle;bundle-version="1.0.0" -Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Require-Bundle: org.junit diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/build.properties b/exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/build.properties index 56d7765..34d2e4d 100644 --- a/exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/build.properties +++ b/exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/build.properties @@ -1,4 +1,4 @@ source.. = src/ -output.. = target/classes/ +output.. = bin/ bin.includes = META-INF/,\ . diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/pom.xml b/exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/pom.xml index 914bf96..09d79ea 100644 --- a/exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/pom.xml +++ b/exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/pom.xml @@ -1,15 +1,15 @@ - - + 4.0.0 + tychodemo tychodemo.parent 1.0.0-SNAPSHOT - ../tychodemo.parent/pom.xml + ../tychodemo.parent + tychodemo.bundle.tests - 1.0.0-SNAPSHOT eclipse-test-plugin + \ No newline at end of file diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/src/tychodemo/SimpleTest.java b/exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/src/tychodemo/SimpleTest.java deleted file mode 100644 index e30421b..0000000 --- a/exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/src/tychodemo/SimpleTest.java +++ /dev/null @@ -1,18 +0,0 @@ -package tychodemo; - -import static org.junit.Assert.*; - -import org.junit.Test; - -import tychodemo.bundle.ApplicationWorkbenchAdvisor; - -public class SimpleTest { - - @Test - public void testGetInitialWindowPerspectiveId() { - assertEquals("tychodemo.bundle.perspective", - new ApplicationWorkbenchAdvisor() - .getInitialWindowPerspectiveId()); - } - -} diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/src/tychodemo/bundle/handlers/AboutHandlerTest.java b/exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/src/tychodemo/bundle/handlers/AboutHandlerTest.java new file mode 100644 index 0000000..80f58c5 --- /dev/null +++ b/exercises/Exercise_05_Add_Product/tychodemo.bundle.tests/src/tychodemo/bundle/handlers/AboutHandlerTest.java @@ -0,0 +1,18 @@ +package tychodemo.bundle.handlers; + +import static org.junit.Assert.*; +import static org.junit.matchers.JUnitMatchers.containsString; + +import org.hamcrest.CoreMatchers; +import org.junit.Test; +import org.junit.matchers.JUnitMatchers; + +public class AboutHandlerTest { + + @Test + public void testGetGreeting() { + AboutHandler aboutHandler = new AboutHandler(); + assertThat(aboutHandler.getGreeting(), containsString("Hello Tycho Demo")); + } + +} diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/Application.e4xmi b/exercises/Exercise_05_Add_Product/tychodemo.bundle/Application.e4xmi new file mode 100644 index 0000000..db2ee02 --- /dev/null +++ b/exercises/Exercise_05_Add_Product/tychodemo.bundle/Application.e4xmi @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/META-INF/MANIFEST.MF b/exercises/Exercise_05_Add_Product/tychodemo.bundle/META-INF/MANIFEST.MF index 7b99124..6c34cbb 100644 --- a/exercises/Exercise_05_Add_Product/tychodemo.bundle/META-INF/MANIFEST.MF +++ b/exercises/Exercise_05_Add_Product/tychodemo.bundle/META-INF/MANIFEST.MF @@ -4,7 +4,25 @@ Bundle-Name: Tycho Demo Bundle Bundle-SymbolicName: tychodemo.bundle; singleton:=true Bundle-Version: 1.0.0.qualifier Bundle-Activator: tychodemo.bundle.Activator -Require-Bundle: org.eclipse.ui, - org.eclipse.core.runtime +Require-Bundle: javax.inject;bundle-version="1.0.0", + org.eclipse.core.resources;bundle-version="3.8.0", + org.eclipse.core.runtime;bundle-version="3.8.0", + org.eclipse.swt;bundle-version="3.8.0", + org.eclipse.core.databinding;bundle-version="1.4.1", + org.eclipse.core.databinding.beans;bundle-version="1.2.100", + org.eclipse.jface;bundle-version="3.8.0", + org.eclipse.jface.databinding;bundle-version="1.6.0", + org.eclipse.e4.ui.services;bundle-version="0.10.0", + org.eclipse.e4.ui.workbench;bundle-version="0.10.1", + org.eclipse.e4.core.services;bundle-version="1.0.0", + org.eclipse.e4.core.di;bundle-version="1.1.0", + org.eclipse.e4.core.contexts;bundle-version="1.0.0", + org.eclipse.e4.ui.workbench.swt;bundle-version="0.10.0", + org.eclipse.core.databinding.property;bundle-version="1.4.0", + org.eclipse.e4.ui.css.core;bundle-version="0.10.0", + org.w3c.css.sac;bundle-version="1.3.1", + org.eclipse.e4.core.commands;bundle-version="0.10.0", + org.eclipse.e4.ui.bindings;bundle-version="0.10.0" +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Import-Package: org.osgi.framework;version="1.3.0" Bundle-ActivationPolicy: lazy -Bundle-RequiredExecutionEnvironment: J2SE-1.5 diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/build.properties b/exercises/Exercise_05_Add_Product/tychodemo.bundle/build.properties index b99d7d6..9e6b76f 100644 --- a/exercises/Exercise_05_Add_Product/tychodemo.bundle/build.properties +++ b/exercises/Exercise_05_Add_Product/tychodemo.bundle/build.properties @@ -1,7 +1,7 @@ -source.. = src/ -output.. = target/classes/ -bin.includes = plugin.xml,\ - META-INF/,\ +output.. = bin/ +bin.includes = META-INF/,\ .,\ - icons/,\ - splash.bmp + plugin.xml,\ + css/default.css,\ + Application.e4xmi +source.. = src/ diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/css/default.css b/exercises/Exercise_05_Add_Product/tychodemo.bundle/css/default.css new file mode 100644 index 0000000..e69de29 diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/expected_rcp_screenshot.png b/exercises/Exercise_05_Add_Product/tychodemo.bundle/expected_rcp_screenshot.png deleted file mode 100644 index d152954e69f81c0da598b4b86d1f938441290589..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4718 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 diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/alt_about.gif b/exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/alt_about.gif deleted file mode 100644 index 20d9ad2d98dbd6820da5adbd9a1728153d3ff0c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9340 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 diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/alt_launcher.icns b/exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/alt_launcher.icns deleted file mode 100644 index b77a6a63938e43ee977646573dbd9a45fd1983af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51159 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

N=U55wS;a{OH*SV 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 Mpnv}UzqP>s0IH1_y#N3J diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/alt_launcher.xpm b/exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/alt_launcher.xpm deleted file mode 100644 index 0ff9033..0000000 --- a/exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/alt_launcher.xpm +++ /dev/null @@ -1,307 +0,0 @@ -/* XPM */ -static char * icon48_xpm[] = { -"48 48 256 2", -" c #4B4B3B3B9090", -". c #0D0D0E0E5454", -"X c #11110E0E5B5B", -"o c #17170F0F6363", -"O c #1D1D13136969", -"+ c #212114146C6C", -"@ c #252514147171", -"# c #282811116C6C", -"$ c #26260D0D6363", -"% c #22220B0B5E5E", -"& c #1C1C0B0B5A5A", -"* c #1C1C0B0B5252", -"= c #1B1B05055353", -"- c #161606064D4D", -"; c #161605054949", -": c #111104044848", -"> c #131304044545", -", c #131305054242", -"< c #141410105E5E", -"1 c #2C2C15157373", -"2 c #2B2B1B1B7575", -"3 c #343416167272", -"4 c #313113136E6E", -"5 c #222209095757", -"6 c #1B1B06064D4D", -"7 c #15150B0B4242", -"8 c #13130C0C5555", -"9 c #2E2E1B1B7878", -"0 c #33331F1F7C7C", -"q c #343418187878", -"w c #3B3B1C1C7575", -"e c #2E2E10106767", -"r c #1B1B07074747", -"t c #18180B0B4646", -"y c #151513136262", -"u c #1A1A15156464", -"i c #34341F1F7777", -"p c #40401E1E8080", -"a c #42421B1B7A7A", -"s c #3B3B15157474", -"d c #2B2B0B0B5B5B", -"f c #222207075252", -"g c #373727277A7A", -"h c #474724248484", -"j c #393915156E6E", -"k c #373711116A6A", -"l c #343413136363", -"z c #232319196E6E", -"x c #292919197070", -"c c #3C3C2C2C8282", -"v c #444431318585", -"b c #494934348A8A", -"n c #505026268A8A", -"m c #3D3D1B1B6E6E", -"M c #31310E0E5C5C", -"N c #2B2B0D0D5353", -"B c #222207074A4A", -"V c #52523C3C9292", -"C c #58583C3C9494", -"Z c #5D5D44449797", -"A c #5C5C2E2E9292", -"S c #676733339595", -"D c #424228287575", -"F c #29290A0A4F4F", -"G c #6C6C4A4A9E9E", -"H c #72725454A7A7", -"J c #8C8C6D6DB2B2", -"K c #343424246E6E", -"L c #3A3A23236A6A", -"P c #3A3A1C1C6767", -"I c #24240A0A4B4B", -"U c #151518186161", -"Y c #76766F6FA5A5", -"T c #ADAD9191CCCC", -"R c #98988989D3D3", -"E c #45453B3B8686", -"W c #3C3C35357979", -"Q c #363631317575", -"! c #32322D2D6B6B", -"~ c #323229296363", -"^ c #30301F1F6262", -"/ c #323218185E5E", -"( c #272707074B4B", -") c #202028286C6C", -"_ c #1E1E1D1D6868", -"` c #9A9A8282BBBB", -"' c #C8C8B3B3D3D3", -"] c #B3B3AFAFE7E7", -"[ c #84847272C6C6", -"{ c #58585757A3A3", -"} c #3F3F3C3C8A8A", -"| c #3B3B3A3A8484", -" . c #414139397D7D", -".. c #3D3D39397A7A", -"X. c #37372E2E6E6E", -"o. c #2C2C21215A5A", -"O. c #2E2E1B1B5B5B", -"+. c #F5F5EFEFF5F5", -"@. c #656566669A9A", -"#. c #47474B4B8E8E", -"$. c #3C3C44447B7B", -"%. c #444442428080", -"&. c #45453E3E8181", -"*. c #40403C3C8181", -"=. c #3D3D33337474", -"-. c #3B3B30306E6E", -";. c #38382D2D6969", -":. c #303026265D5D", -">. c #2C2C15155A5A", -",. c #1F1F1C1C7070", -"<. c #25251E1E7171", -"1. c #59595C5C9191", -"2. c #4D4D53538989", -"3. c #4C4C49498484", -"4. c #484845458585", -"5. c #494941418585", -"6. c #494940408181", -"7. c #2F2F1C1C5353", -"8. c #2B2B28287676", -"9. c #323231317F7F", -"0. c #545452528B8B", -"q. c #51514E4E8989", -"w. c #4E4E4B4B8C8C", -"e. c #4C4C47478686", -"r. c #46463D3D7E7E", -"t. c #434336367A7A", -"y. c #2B2B13135555", -"u. c #47473D3D8D8D", -"i. c #575757578E8E", -"p. c #48483E3E7F7F", -"a. c #46463A3A7D7D", -"s. c #424235357575", -"d. c #404034347171", -"f. c #BFBFCBCBFAFA", -"g. c #B8B8A8A8DDDD", -"h. c #5E5E60609292", -"j. c #565655558C8C", -"k. c #4B4B44448282", -"l. c #454539397B7B", -"z. c #434338387878", -"x. c #3F3F32326D6D", -"c. c #3D3D30306969", -"v. c #3A3A2E2E6363", -"b. c #36362A2A5C5C", -"n. c #343424245555", -"m. c #30301E1E4D4D", -"M. c #49493C3C8282", -"N. c #5E5E4F4F8C8C", -"B. c #56563B3B8B8B", -"V. c #545407078585", -"C. c #424234347272", -"Z. c #9797A4A4F7F7", -"A. c #444436367676", -"S. c #7D7D7979D5D5", -"D. c #464640408A8A", -"F. c #44444B4B8282", -"G. c #414107077777", -"H. c #71716161C1C1", -"J. c #303039397979", -"K. c #8E8E8E8EE6E6", -"L. c #404033338B8B", -"P. c #4A4A45458C8C", -"I. c #46463A3A8080", -"U. c #363629295454", -"Y. c #303022224848", -"T. c #424237377575", -"R. c #2E2E1D1D6363", -"E. c #79798383EAEA", -"W. c #74747B7BE4E4", -"Q. c #6D6D7676D6D6", -"!. c #6A6A7171CECE", -"~. c #66666969C6C6", -"^. c #62626565BCBC", -"/. c #5F5F6060B5B5", -"(. c #5B5B5B5BACAC", -"). c #535353539898", -"_. c #4F4F4F4FA4A4", -"`. c #54544D4DA4A4", -"'. c #323204046B6B", -"]. c #303035357979", -"[. c #313122224343", -"{. c #5A5A5B5BB7B7", -"}. c #484846468080", -"|. c #454541417575", -" X c #4B4B31318282", -".X c #47473C3C8484", -"XX c #3E3E35356E6E", -"oX c #2F2F26264040", -"OX c #2B2B23233A3A", -"+X c #262619195C5C", -"@X c #252515155A5A", -"#X c #55555151B3B3", -"$X c #3C3C2D2D5D5D", -"%X c #39392F2F5656", -"&X c #37372D2D5050", -"*X c #25251F1F3030", -"=X c #24241D1D4343", -"-X c #202013135656", -";X c #41413B3B6C6C", -":X c #444442429696", -">X c #212100005E5E", -",X c #444436367272", -" > , , , ", -" . . X X < < o o O O + @ 1 2 2 1 1 1 1 1 1 1 1 3 4 # # $ $ $ % % % 5 = = 6 6 - ; ; > > , , 7 ", -" . 8 < < < o O O + @ @ 2 9 9 0 0 q q q q q q q w 3 4 4 e e $ $ $ $ % 5 = = 6 6 6 ; ; > > r t ", -" . X < y u O O + @ 1 2 i 0 0 p p p p p p p a a p a s 3 4 4 e e e e d 5 5 f f 6 6 6 ; ; r r t ", -" X < y u O + + @ 2 9 0 g p p h h h h h h h p h h a a s s j k k j l d d 5 5 f f 6 6 r r r r r ", -" X < y O z x x 9 0 g c v b n n n n n n n n n n n h a a s s j j m l M d d N f f B B B B r r r ", -" < y u + z 2 0 c c b V C Z C C A A A A A S S S n h D w w m m m m k l M d d N f F F F B r r r ", -" < y O z z 9 c b V Z G H H H G S G G J J H V v c g g K K K K L P l l l M M N N N N I B B r r ", -" U u + z x i v C H Y J J J J H J T R H V E W W Q Q Q Q ! ! ! ~ ^ ^ / / M M M M M N ( B B r r ", -" ) _ z x 9 g b Z Y ` ' ' ' T T ] [ { } | .........W W Q Q X.! ~ ~ o.O./ / / / N F ( B B B r ", -" ) ) z x i c V G J ' +.+.+.+.] [ @.#.$.%.%.%.&.*. . .....W =.-.X.;.~ :.o.O.^ >.N F ( B B B B ", -" ) ,.<.2 g v C H J ' +.+.+.+.T Y 1.2.3.4.4.4.5.6.&.&. . ...W =.=.-.;.~ :.o.7.>.N F F ( B I I ", -" ) ,.<.8.9.b C H J T +.+.+.' J @.1.0.q.q.w.e.4.5.6.&.r. . .t.W =.=.-.;.~ :.o.7.y.N F ( ( I I ", -" 8.8.8.9.| u.C G J T +.+.' ` Y @.1.i.0.q.q.e.e.5.6.p.r.a. .t.t.s.d.d.-.;.~ :.7.7.y.F F ( I I ", -" 9.c c c v b A S H ' f.g.` Y @.h.1.i.j.0.q.q.e.k.6.p.r.a.l.t.z.s.s.d.x.c.v.b.n.m.7.N F F F I ", -" <.g M.N.B.B.n V.J f.R J @.h.h.1.i.i.j.j.0.q.3.k.6.p.r.a.l.l.z.s.C.d.x.x.c.v.b.n.m.y.N F F F ", -" + x i v B.Z Z G g.Z.[ @.2.i.i.j.j.j.j.j.0.q.3.k.6.p.p.a.l.l.A.s.C.C.d.x.c.v.b.n.m.7.y.N N y. ", -" O # 3 w p n Z ` f.S.H D.F.q.0.0.0.0.j.0.q.q.3.k.6.p.r.a.a.l.A.s.s.C.d.x.x.c.v.b.n.m.y.y.y.y. ", -" O # 4 s a G.V.T Z.H.V J.%.e.w.q.0.0.0.0.q.q.e.k.6.p.r.a.a.l.z.A.s.C.d.d.x.c.v.b.n.m.7.>.y.y. ", -" O # 4 s w G.A f.K.H L...4.P.w.w.w.q.q.q.q.e.e.5.6.M.I.I.a.a.l.z.A.s.d.d.x.c.v.v.U.Y.7.O.>.y. ", -" $ # 4 3 s G.G f.S.Z 9.*.D.P.P.w.w.w.w.w.e.e.5.5.M.M.I.I.a.a.l.z.T.s.d.d.x.x.c.v.U.Y.m.R.>.>. ", -" E.E.W.W.W.W.E.Z.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.!.!.!.!.~.~.~.~.~.~.^.^.^.^.^./././.(.{ { )._.`._. ", -" + # 3 w s '.` f.H.V ].*.D.P.P.P.P.P.P.P.5.5.5.M.M.M.I.I.a.l.z.z.T.T.s.d.d.x.c.v.U.Y.[.^ O.>. ", -" ~.~.~.~.~.~.K.Z.S.~.{.^.^.^.^.^.^.^.^././././././.(.(.(.(.(.(.{ { { { { ).).).w.w.}.|.P.u.} ", -" .I.6. X X XT f.H.b ].*.E D.D.D.D.5.5..X.XM.M.I.I.a.a.l.l.z.z.T.T.T.d.XXx.c.v.b.U.oXOXR.+X@X ", -" E.E.E.W.W.W.K.Z.E.W.Q.Q.Q.Q.Q.Q.Q.Q.!.!.!.!.!.!.~.~.~.~.~.~.^.^.^.^.^./././.(.{ { ).).#X_._. ", -" & % $ e '.= H f.H.b 8.W *.E E E .X.X.XI.I.I.I.a.a.l.l.z.z.T.T.T.C.XXXXc.v.$X%X&XY.*X=X2 @X-X ", -" {.{.{.{.{.#X~.Z.W.~.{.{./././././././././.(.(.(.(.(.(.(.{ { { { { { ).).).w.w.3.}.;X%.:X} } ", -" & & % $ e >XV.f.S.C K X.W t. . .l.l.t.t.t.t.A.A.A.,X,X,X,X,XX7X` Z.Z D ! =.=.s.t.t.t.A.A.s.A.,X,X,X,X > > t t t cX ", -" nXbXbXzXzXlXaXXXY +Xf = f = 7XtXR R mXn.Y.[.[.[.[.OX*X*X8X5X*X=X,.u vXvX; > > MXMX, 7 t t ", -" nXnXnXbXzXvX-.Y +XcX6 6 = = = d L B.G H `.X.:.7.m.=X=X=X=X=X6X,.u cXvXNX: BX> MXVXCXVX7 7 7 ", -" ZXZXnXbXAXgX@.+XvX; - - - - * @XR.>.sX>.R.i 0 x eXeXeXeXO hXaXcXvXNX: BXMXMXMXVXCXCXCXVX7 7 ", -" SXZXZXAXgXN.aXNX: : NXNXNX- * +X+X* 6 6 6 * * * * * * * vXvX- NX: DXBXMXMXFXCXCXCXCXGXVXVX7 ", -" SXSXHXgX0.JXKXLXKXKXDX: : NX* @X-X- - - - - - - - - - - NX: DXDXDXMXMXFXFXCXCXCXCXGXGXGXVXVX ", -" SXHXPX3.JXnXnXnXnXbXLXKXKXNXaX-XvX: : NX: : : : : : : BXDXDXLXMXMXFXFXCXCXCXCXGXGXGXGXGXGXGX ", -" IXUX$.AXZXZXZXZXnXnXnXLXLXNXJXvXBXDXBXBXBXBXDXDXDXDXLXDXLXLXFXFXFXFXCXCXCXCXGXGXGXGXGXGXGXGX ", -" "}; diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/alt_window_16.gif b/exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/alt_window_16.gif deleted file mode 100644 index 05626b17d8133fb8d4644b1d6fef71b5464a83ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 637 zcmV-@0)qWVNk%w1VGsZi0OkMyi-8)}*O-2lP0Hw}F;@yymoek*x!Lop&FGr*^SR~k zs^;O9;p?WSqgKtvhMApMhF*N^?6&X&9pLg?DBG(C(ez;g!PXhs))Rw8MzH&4Z(_ zXvf!@hj|a@|9{HUwg3O)o~~}>@~^JReYVZIH1tGelN zk%v8>nmw<;lBk_yvbu)E--D*OeB8x>j*3>k(uk0bLzTd1hNNNJ=CYr@WM^3dMPxF! zzph4nBvxlHz`%CY-G9r{sL|c0ptWPh!<4SPZ@9Bvy2FG2|H;$mn~9BNUw$#w=Y!bc zgtn}6%i@6G^tH9ZgW}z-$IYnz|B<@Hh`+RXy1~Awt!2U5leENdA^8LV00000EC2ui z01yBW000NtfPaF6goT0uIU{mqadcHX2yRVIXMzhO7(q`I6h}HJI0pwxmKbPYVl@J4 zDm{J(2S|cfc{Cdv4KaNy8g_n31A=5;1shmX4-f6x{Jf>7ZWJ08yT*#Oz=YiBkILwmjfEnosaBAPDf9ls zyvdZd!-~Sos+W>G-s`Nk{FBSui~9V#l#Mgv?ySDMe7VAbsjYFcx_8&zi?qIfzR97t z#FCqrMWLNf&E=%y`n1>coVmr8xaEKH{mbL}t&D;gy~&Qj%#~z(LzA{)#N~zP^|R~m zp}otUtJHMC;*HGdj_LHdqq%0d+j+ajo586>NW&Zue=J&Va z_qWdQp*=VauEA}uv~jPtc+cjr?)$_4|H+n~Sk~>BfR;|v}n2Rhi`F=4Oay#WC( zz<`mgpCCAqiV)E;p<@9xCQK|?u;RoC1{4_NfH;66xr-`97}&wFV-*P~5+pD)vg8R0 zI93LL@noC>K`K;O`4g|B4lhV>>g2hiWCx%^T^{{orJ4a655`o18dWM!k`*dk<&Yyl zfG5fS1RaQShe(_;Sx`vWyEms9sw>oDh4>bLpfy5xfE`1`gkHXW0jpj6!!3+1hlRY6 zQy_~06J=0{7QHhC$-sg+aIlQ|&yCj@I%Akk8-s@1w@K(G@u9a17cX99$UG;+7%U7@ zlv%#~uj#6&*RB>2ppBs0bz)=quzPp!?;n2u4lX=Hp5cE)h!8^KID-=@;>$l>HEo9u zEsU@TAYhAi*RXY_!ECq{*d1@a0TQou6B7<7n0fl1KSm)2x0%)o*NS_pu^79a?c zi406UP(TnUnRKCj_u;1@haNhyM2LS(vBn8V+%d);0pLIZ1uX`dp?)5CAb^J;(kQ|I zO&6rWMFAHKfP;@MwvgcrL>d{R5+KlMf)rB#V8eqMJTZW399TI6mRTN&00K)uQ9=oV zj6lE?NdPc{4UC;JKn`ef@B<4QcIY7jTsF`EoqsUV$rLsKus{?aoe{tQKV-V0mT$rd z#SlFxTBoA~G~mSmU&O#h6&*O?mRoMV=|mHsf-*z{b&fDX4^<2hfeki9pa&ONoDhH$ z$Rgl`5=xXX1OyR83&9Y%G9keL8+1ZI5?#aq01O8-A+8@KG|&UI(QdE-8ln901s{1V z@dXp4mH#SB%I7#TXkB G2mm{gq(mG5 diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/sample.gif b/exercises/Exercise_05_Add_Product/tychodemo.bundle/icons/sample.gif new file mode 100644 index 0000000000000000000000000000000000000000..34fb3c9d8cb7d489681b7f7aee4bdcd7eaf53610 GIT binary patch literal 983 zcmZ?wbhEHb6krfw_|CxKYUg-n!?izO{@9*?jxd%4aX0yzy`dymabz zw#(eg=y~&N&n)dZv2xzduG}5lraiApo3(c4*{Ylg5#|$JO_EEZ<^|a2`Z*=9ns7DV zy=TR&gYw*7f%auV?ip3tvjRPmcdoho{K?x$_vR?C#t5&<;~V}S*>OMCr>h}%%bLZ9 zmo3`hYEwTICo-TTCZwgTsC&VjZRgJ1eE#fBa^%9R zmmfWS@;bnyJ27HWY}kxYzv(Hl>yu;FCPlAEh+34Muq-8Rb6C)<8qA3{r2e5 z`$vyngh#H=FWlqqvnapfc5%(!sQ4v?r7J61-&eJNEN^;KTK}T7{#i-gJh%G*9vcYdwv_*~xdw!Gz4Va?T!sXyyF@8?w<>X`X=#j%uHV4GRvj@+tE@ zQ%F!a)GKcn^~8abN>4la1UNXVL;{ZWi)lEwyeatDu%Lr6;aASiLrXXW zQm#6w~t;=?ud9vy7?cE^q z*1q%4_Md-x_|o&km!6%t_VVPl7w2!kK6mTY)%$O+-hXrZ@w-PaKBPA<&u(2-(6RIc zNcPq9H=oX5zOnP@<=ao*J$&)u*_+SB-Al@Q7r*)NC8Bg+ zz;2_n+r|KMbN2{G6a4_&{kGN)4gvc5juAGR#sRMOu1@w&t^vlzRuN`KMgigX?uQ4k zYgk5@s;SFPcrC52W*VWRCnlyRuKMMRsEVpigru?tONzsU2OVNcZfg!)N^s&3;9>A! zDQIQv=+@exGeO}YGc&uwQjf$B2b)>gB6wUn7Bn7go*uf&AmXGW<1{9LBBLK|i - - - - - - - - - - - + name="tychodemo.bundle" + application="org.eclipse.e4.ui.workbench.swt.E4Application"> + + + + + name="applicationCSS" + value="platform:/plugin/tychodemo.bundle/css/default.css"> diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/pom.xml b/exercises/Exercise_05_Add_Product/tychodemo.bundle/pom.xml index 770ad51..811cd50 100644 --- a/exercises/Exercise_05_Add_Product/tychodemo.bundle/pom.xml +++ b/exercises/Exercise_05_Add_Product/tychodemo.bundle/pom.xml @@ -1,15 +1,15 @@ - - + 4.0.0 + tychodemo tychodemo.parent 1.0.0-SNAPSHOT - ../tychodemo.parent/pom.xml + ../tychodemo.parent/ + tychodemo.bundle - 1.0.0-SNAPSHOT eclipse-plugin + \ No newline at end of file diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/splash.bmp b/exercises/Exercise_05_Add_Product/tychodemo.bundle/splash.bmp deleted file mode 100644 index d7d2e3032cb9c5bbfbcd6a0c027ae126befeea08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135600 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%0AKxg}KQ2%lWe>A1c_|AfZLCwJf=_5Xq6 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 diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/Activator.java b/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/Activator.java index e1dc9f0..467c617 100644 --- a/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/Activator.java +++ b/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/Activator.java @@ -1,61 +1,30 @@ package tychodemo.bundle; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; -/** - * The activator class controls the plug-in life cycle - */ -public class Activator extends AbstractUIPlugin { +public class Activator implements BundleActivator { - // The plug-in ID - public static final String PLUGIN_ID = "tychodemo.bundle"; //$NON-NLS-1$ + private static BundleContext context; - // The shared instance - private static Activator plugin; - - /** - * The constructor - */ - public Activator() { + static BundleContext getContext() { + return context; } /* * (non-Javadoc) - * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) + * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) */ - public void start(BundleContext context) throws Exception { - super.start(context); - plugin = this; + public void start(BundleContext bundleContext) throws Exception { + Activator.context = bundleContext; } /* * (non-Javadoc) - * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) - */ - public void stop(BundleContext context) throws Exception { - plugin = null; - super.stop(context); - } - - /** - * Returns the shared instance - * - * @return the shared instance + * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) */ - public static Activator getDefault() { - return plugin; + public void stop(BundleContext bundleContext) throws Exception { + Activator.context = null; } - /** - * Returns an image descriptor for the image file at the given - * plug-in relative path - * - * @param path the path - * @return the image descriptor - */ - public static ImageDescriptor getImageDescriptor(String path) { - return imageDescriptorFromPlugin(PLUGIN_ID, path); - } } diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/Application.java b/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/Application.java deleted file mode 100644 index af61482..0000000 --- a/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/Application.java +++ /dev/null @@ -1,46 +0,0 @@ -package tychodemo.bundle; - -import org.eclipse.equinox.app.IApplication; -import org.eclipse.equinox.app.IApplicationContext; -import org.eclipse.swt.widgets.Display; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.PlatformUI; - -/** - * This class controls all aspects of the application's execution - */ -public class Application implements IApplication { - - /* (non-Javadoc) - * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext) - */ - public Object start(IApplicationContext context) throws Exception { - Display display = PlatformUI.createDisplay(); - try { - int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor()); - if (returnCode == PlatformUI.RETURN_RESTART) - return IApplication.EXIT_RESTART; - else - return IApplication.EXIT_OK; - } finally { - display.dispose(); - } - - } - - /* (non-Javadoc) - * @see org.eclipse.equinox.app.IApplication#stop() - */ - public void stop() { - if (!PlatformUI.isWorkbenchRunning()) - return; - final IWorkbench workbench = PlatformUI.getWorkbench(); - final Display display = workbench.getDisplay(); - display.syncExec(new Runnable() { - public void run() { - if (!display.isDisposed()) - workbench.close(); - } - }); - } -} diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/ApplicationActionBarAdvisor.java b/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/ApplicationActionBarAdvisor.java deleted file mode 100644 index 59e2d5c..0000000 --- a/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/ApplicationActionBarAdvisor.java +++ /dev/null @@ -1,20 +0,0 @@ -package tychodemo.bundle; - -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.application.ActionBarAdvisor; -import org.eclipse.ui.application.IActionBarConfigurer; - -public class ApplicationActionBarAdvisor extends ActionBarAdvisor { - - public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) { - super(configurer); - } - - protected void makeActions(IWorkbenchWindow window) { - } - - protected void fillMenuBar(IMenuManager menuBar) { - } - -} diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/ApplicationWorkbenchAdvisor.java b/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/ApplicationWorkbenchAdvisor.java deleted file mode 100644 index ac82b22..0000000 --- a/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/ApplicationWorkbenchAdvisor.java +++ /dev/null @@ -1,18 +0,0 @@ -package tychodemo.bundle; - -import org.eclipse.ui.application.IWorkbenchWindowConfigurer; -import org.eclipse.ui.application.WorkbenchAdvisor; -import org.eclipse.ui.application.WorkbenchWindowAdvisor; - -public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor { - - private static final String PERSPECTIVE_ID = "tychodemo.bundle.perspective"; //$NON-NLS-1$ - - public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) { - return new ApplicationWorkbenchWindowAdvisor(configurer); - } - - public String getInitialWindowPerspectiveId() { - return PERSPECTIVE_ID; - } -} diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/ApplicationWorkbenchWindowAdvisor.java b/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/ApplicationWorkbenchWindowAdvisor.java deleted file mode 100644 index 80c440a..0000000 --- a/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/ApplicationWorkbenchWindowAdvisor.java +++ /dev/null @@ -1,25 +0,0 @@ -package tychodemo.bundle; - -import org.eclipse.swt.graphics.Point; -import org.eclipse.ui.application.ActionBarAdvisor; -import org.eclipse.ui.application.IActionBarConfigurer; -import org.eclipse.ui.application.IWorkbenchWindowConfigurer; -import org.eclipse.ui.application.WorkbenchWindowAdvisor; - -public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { - - public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) { - super(configurer); - } - - public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) { - return new ApplicationActionBarAdvisor(configurer); - } - - public void preWindowOpen() { - IWorkbenchWindowConfigurer configurer = getWindowConfigurer(); - configurer.setInitialSize(new Point(400, 300)); - configurer.setShowCoolBar(false); - configurer.setShowStatusLine(false); - } -} diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/Perspective.java b/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/Perspective.java deleted file mode 100644 index 5369b41..0000000 --- a/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/Perspective.java +++ /dev/null @@ -1,10 +0,0 @@ -package tychodemo.bundle; - -import org.eclipse.ui.IPageLayout; -import org.eclipse.ui.IPerspectiveFactory; - -public class Perspective implements IPerspectiveFactory { - - public void createInitialLayout(IPageLayout layout) { - } -} diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/handlers/AboutHandler.java b/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/handlers/AboutHandler.java new file mode 100644 index 0000000..bf44bae --- /dev/null +++ b/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/handlers/AboutHandler.java @@ -0,0 +1,29 @@ +/******************************************************************************* + * Copyright (c) 2010 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package tychodemo.bundle.handlers; + +import javax.inject.Named; + +import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.e4.ui.services.IServiceConstants; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.widgets.Shell; + +public class AboutHandler { + @Execute + public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell) { + MessageDialog.openInformation(shell, "About", getGreeting()); + } + + String getGreeting() { + return "Hello Tycho Demo RCP!"; + } +} diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/handlers/OpenHandler.java b/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/handlers/OpenHandler.java new file mode 100644 index 0000000..94cc297 --- /dev/null +++ b/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/handlers/OpenHandler.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * Copyright (c) 2010 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package tychodemo.bundle.handlers; + +import java.lang.reflect.InvocationTargetException; + +import javax.inject.Named; + +import org.eclipse.e4.core.contexts.IEclipseContext; +import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.e4.ui.services.IServiceConstants; +import org.eclipse.swt.widgets.FileDialog; +import org.eclipse.swt.widgets.Shell; + +public class OpenHandler { + + @Execute + public void execute( + IEclipseContext context, + @Named(IServiceConstants.ACTIVE_SHELL) Shell shell) + throws InvocationTargetException, InterruptedException { + FileDialog dialog = new FileDialog(shell); + dialog.open(); + } +} diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/handlers/QuitHandler.java b/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/handlers/QuitHandler.java new file mode 100644 index 0000000..bc4e549 --- /dev/null +++ b/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/handlers/QuitHandler.java @@ -0,0 +1,34 @@ +/******************************************************************************* + * Copyright (c) 2010 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package tychodemo.bundle.handlers; + +import java.lang.reflect.InvocationTargetException; + +import javax.inject.Named; + +import org.eclipse.e4.core.contexts.IEclipseContext; +import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.e4.ui.services.IServiceConstants; +import org.eclipse.e4.ui.workbench.IWorkbench; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.widgets.Shell; + +public class QuitHandler { + @Execute + public void execute(IWorkbench workbench, IEclipseContext context, + @Named(IServiceConstants.ACTIVE_SHELL) Shell shell) + throws InvocationTargetException, InterruptedException { + if (MessageDialog.openConfirm(shell, "Confirmation", + "Do you want to exit?")) { + workbench.close(); + } + } +} diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/handlers/SaveHandler.java b/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/handlers/SaveHandler.java new file mode 100644 index 0000000..430bb34 --- /dev/null +++ b/exercises/Exercise_05_Add_Product/tychodemo.bundle/src/tychodemo/bundle/handlers/SaveHandler.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * Copyright (c) 2010 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package tychodemo.bundle.handlers; + +import java.lang.reflect.InvocationTargetException; + +import javax.inject.Named; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.e4.core.contexts.ContextInjectionFactory; +import org.eclipse.e4.core.contexts.IEclipseContext; +import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.e4.core.di.annotations.CanExecute; +import org.eclipse.e4.ui.model.application.MContribution; +import org.eclipse.e4.ui.model.application.ui.MDirtyable; +import org.eclipse.e4.ui.services.IServiceConstants; +//import org.eclipse.e4.ui.workbench.Persist; +import org.eclipse.jface.dialogs.ProgressMonitorDialog; +import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.swt.widgets.Shell; + +public class SaveHandler { + @CanExecute + public boolean canExecute( + @Named(IServiceConstants.ACTIVE_PART) MDirtyable dirtyable) { + if (dirtyable == null) { + return false; + } + return dirtyable.isDirty(); + } + + @Execute + public void execute( + IEclipseContext context, + @Named(IServiceConstants.ACTIVE_SHELL) Shell shell, + @Named(IServiceConstants.ACTIVE_PART) final MContribution contribution) + throws InvocationTargetException, InterruptedException { + final IEclipseContext pmContext = context.createChild(); + + ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell); + dialog.open(); + dialog.run(true, true, new IRunnableWithProgress() { + public void run(IProgressMonitor monitor) + throws InvocationTargetException, InterruptedException { + pmContext.set(IProgressMonitor.class.getName(), monitor); + if (contribution != null) { + Object clientObject = contribution.getObject(); +// ContextInjectionFactory.invoke(clientObject, Persist.class, //$NON-NLS-1$ +// pmContext, null); + } + } + }); + + pmContext.dispose(); + } +} diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/tychodemo.bundle.product b/exercises/Exercise_05_Add_Product/tychodemo.bundle/tychodemo.bundle.product new file mode 100644 index 0000000..c668560 --- /dev/null +++ b/exercises/Exercise_05_Add_Product/tychodemo.bundle/tychodemo.bundle.product @@ -0,0 +1,105 @@ + + + + + + + + + + -XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exercises/Exercise_05_Add_Product/tychodemo.bundle/tychodemo.launch b/exercises/Exercise_05_Add_Product/tychodemo.bundle/tychodemo.launch deleted file mode 100644 index 0b8eeca..0000000 --- a/exercises/Exercise_05_Add_Product/tychodemo.bundle/tychodemo.launch +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/exercises/Exercise_05_Add_Product/tychodemo.feature/pom.xml b/exercises/Exercise_05_Add_Product/tychodemo.feature/pom.xml index 9de6f2d..f44bd67 100644 --- a/exercises/Exercise_05_Add_Product/tychodemo.feature/pom.xml +++ b/exercises/Exercise_05_Add_Product/tychodemo.feature/pom.xml @@ -1,15 +1,15 @@ - - + 4.0.0 + tychodemo tychodemo.parent 1.0.0-SNAPSHOT - ../tychodemo.parent/pom.xml + ../tychodemo.parent + tychodemo.feature - 1.0.0-SNAPSHOT eclipse-feature - + + \ No newline at end of file diff --git a/exercises/Exercise_05_Add_Product/tychodemo.parent/pom.xml b/exercises/Exercise_05_Add_Product/tychodemo.parent/pom.xml index c659ae8..6cd7574 100644 --- a/exercises/Exercise_05_Add_Product/tychodemo.parent/pom.xml +++ b/exercises/Exercise_05_Add_Product/tychodemo.parent/pom.xml @@ -1,14 +1,21 @@ - + 4.0.0 + tychodemo tychodemo.parent 1.0.0-SNAPSHOT pom - + + + ../tychodemo.bundle + ../tychodemo.bundle.tests + ../tychodemo.feature + ../tychodemo.repository + + + 0.14.1 @@ -16,9 +23,9 @@ - indigo + juno p2 - http://download.eclipse.org/releases/indigo/ + jar:file:/C:/Env/Source/Tycho/tycho-tutorial-p2-repository.zip!/ @@ -34,11 +41,4 @@ - - ../tychodemo.bundle - ../tychodemo.bundle.tests - ../tychodemo.feature - ../tychodemo.repository - - - \ No newline at end of file + diff --git a/exercises/Exercise_05_Add_Product/tychodemo.repository/pom.xml b/exercises/Exercise_05_Add_Product/tychodemo.repository/pom.xml index 10e2790..44e8e3b 100644 --- a/exercises/Exercise_05_Add_Product/tychodemo.repository/pom.xml +++ b/exercises/Exercise_05_Add_Product/tychodemo.repository/pom.xml @@ -1,15 +1,15 @@ - - + 4.0.0 + tychodemo tychodemo.parent 1.0.0-SNAPSHOT - ../tychodemo.parent/pom.xml + ../tychodemo.parent + tychodemo.repository - 1.0.0-SNAPSHOT eclipse-repository - \ No newline at end of file + +