Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwjongman2010-06-10 20:19:05 +0000
committerwjongman2010-06-10 20:19:05 +0000
commitbbc14bced418f1194f424bd7dd33602cb5319c39 (patch)
tree8a22f58f3e8aece27c8df19f6ac4e1cd21bb84f6
parentfe9734e294f6a6afeff6e9290b0328beae6fb9c5 (diff)
downloadorg.eclipse.ecf-bbc14bced418f1194f424bd7dd33602cb5319c39.tar.gz
org.eclipse.ecf-bbc14bced418f1194f424bd7dd33602cb5319c39.tar.xz
org.eclipse.ecf-bbc14bced418f1194f424bd7dd33602cb5319c39.zip
Initial Commit
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.classpath8
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.project28
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.settings/org.eclipse.jdt.core.prefs276
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.settings/org.eclipse.jdt.ui.prefs4
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.settings/org.eclipse.pde.core.prefs4
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/META-INF/MANIFEST.MF22
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/build.properties7
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/com.remainsoftware.osgilloscope_0.1.0.jarbin0 -> 8992 bytes
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/images/quotes.bmpbin0 -> 1078 bytes
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/images/quotes32x32x32.bmpbin0 -> 4166 bytes
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/images/quotes48x48x32.bmpbin0 -> 9286 bytes
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/plugin.xml32
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/projectSet.psf7
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/com/swtdesigner/SWTResourceManager.java440
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/org/eclipse/ecf/examples/remoteservices/quotes/consumer/Activator.java36
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/org/eclipse/ecf/examples/remoteservices/quotes/consumer/Application.java140
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/org/eclipse/ecf/examples/remoteservices/quotes/consumer/ConsumerUI.java206
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/org/eclipse/ecf/examples/remoteservices/quotes/consumer/Dispatcher.java180
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/zooquotesConsumerGeneric.product95
19 files changed, 1485 insertions, 0 deletions
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.classpath b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.classpath
new file mode 100644
index 000000000..042e9a570
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry exported="true" kind="lib" path="com.remainsoftware.osgilloscope_0.1.0.jar"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.project b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.project
new file mode 100644
index 000000000..9a42657c1
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.examples.remoteservices.quotes.consumer</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.settings/org.eclipse.jdt.core.prefs b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..5886ef111
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,276 @@
+#Sun Jun 06 16:00:41 CEST 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.settings/org.eclipse.jdt.ui.prefs b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 000000000..146a0d1db
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,4 @@
+#Sun Jun 06 16:00:41 CEST 2010
+eclipse.preferences.version=1
+formatter_profile=_Eclipse [built-in] ++
+formatter_settings_version=11
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.settings/org.eclipse.pde.core.prefs b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 000000000..b09eb1fdc
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,4 @@
+#Sun Jun 06 15:47:02 CEST 2010
+eclipse.preferences.version=1
+pluginProject.extensions=true
+resolve.requirebundle=false
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/META-INF/MANIFEST.MF b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..a8321ce90
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/META-INF/MANIFEST.MF
@@ -0,0 +1,22 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Quotes Consumer
+Bundle-SymbolicName: org.eclipse.ecf.examples.remoteservices.quotes.consumer;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.eclipse.ecf.examples.remoteservices.quotes.consumer.Activator
+Bundle-Vendor: YAZAFATUTU
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Import-Package: org.eclipse.core.runtime;version="3.4.0",
+ org.eclipse.ecf.core.identity;version="3.0.0",
+ org.eclipse.ecf.core.security,
+ org.eclipse.ecf.discovery;version="3.0.0",
+ org.eclipse.ecf.provider.zookeeper,
+ org.eclipse.ecf.provider.zookeeper.core,
+ org.eclipse.ecf.services.quotes,
+ org.osgi.framework;version="1.3.0"
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .,
+ com.remainsoftware.osgilloscope_0.1.0.jar
+Require-Bundle: org.eclipse.swt,
+ org.eclipse.ecf,
+ org.eclipse.equinox.app
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/build.properties b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/build.properties
new file mode 100644
index 000000000..569332ba6
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ com.remainsoftware.osgilloscope_0.1.0.jar,\
+ plugin.xml,\
+ images/
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/com.remainsoftware.osgilloscope_0.1.0.jar b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/com.remainsoftware.osgilloscope_0.1.0.jar
new file mode 100644
index 000000000..3f38257e3
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/com.remainsoftware.osgilloscope_0.1.0.jar
Binary files differ
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/images/quotes.bmp b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/images/quotes.bmp
new file mode 100644
index 000000000..c0b34f1ab
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/images/quotes.bmp
Binary files differ
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/images/quotes32x32x32.bmp b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/images/quotes32x32x32.bmp
new file mode 100644
index 000000000..6db7d005d
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/images/quotes32x32x32.bmp
Binary files differ
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/images/quotes48x48x32.bmp b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/images/quotes48x48x32.bmp
new file mode 100644
index 000000000..f616439fd
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/images/quotes48x48x32.bmp
Binary files differ
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/plugin.xml b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/plugin.xml
new file mode 100644
index 000000000..37b162d24
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/plugin.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ id="id1"
+ name="Zookeeper Discoverable Quotes Service"
+ point="org.eclipse.core.runtime.applications">
+ <application
+ cardinality="singleton-global"
+ thread="main"
+ visible="true">
+ <run
+ class="org.eclipse.ecf.examples.remoteservices.quotes.consumer.Application">
+ </run>
+ </application>
+ </extension>
+ <extension
+ id="zooquotesgenericconsumer"
+ name="zooQuotes"
+ point="org.eclipse.core.runtime.products">
+ <product
+ application="org.eclipse.ecf.examples.remoteservices.quotes.consumer.id1"
+ description="Zookeeper Discoverable Quotes Service"
+ name="Zookeeper Discoverable Quotes Service">
+ <property
+ name="appName"
+ value="Zookeeper Discoverable Quotes Service">
+ </property>
+ </product>
+ </extension>
+
+</plugin>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/projectSet.psf b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/projectSet.psf
new file mode 100644
index 000000000..da290e7b3
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/projectSet.psf
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<psf version="2.0">
+<provider id="org.eclipse.team.cvs.core.cvsnature">
+<project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/rt,org.eclipse.ecf/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes,org.eclipse.ecf.examples.remoteservices.quotes.consumer"/>
+<project reference="1.0,:pserver:anonymous@ecf1.osuosl.org:/ecf,newsreader/bundles/org.eclipse.ecf.services.quotes,org.eclipse.ecf.services.quotes"/>
+</provider>
+</psf> \ No newline at end of file
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/com/swtdesigner/SWTResourceManager.java b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/com/swtdesigner/SWTResourceManager.java
new file mode 100644
index 000000000..0cf20cb06
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/com/swtdesigner/SWTResourceManager.java
@@ -0,0 +1,440 @@
+package com.swtdesigner;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Cursor;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Display;
+
+/**
+ * Utility class for managing OS resources associated with SWT controls such as colors, fonts, images, etc.
+ * <p>
+ * !!! IMPORTANT !!! Application code must explicitly invoke the <code>dispose()</code> method to release the
+ * operating system resources managed by cached objects when those objects and OS resources are no longer
+ * needed (e.g. on application shutdown)
+ * <p>
+ * This class may be freely distributed as part of any application or plugin.
+ * <p>
+ * Copyright (c) 2003 - 2007, Instantiations, Inc. <br>
+ * All Rights Reserved
+ *
+ * @author scheglov_ke
+ * @author Dan Rubel
+ */
+public class SWTResourceManager {
+ ////////////////////////////////////////////////////////////////////////////
+ //
+ // Color
+ //
+ ////////////////////////////////////////////////////////////////////////////
+ private static Map<RGB, Color> m_colorMap = new HashMap<RGB, Color>();
+ /**
+ * Returns the system {@link Color} matching the specific ID.
+ *
+ * @param systemColorID
+ * the ID value for the color
+ * @return the system {@link Color} matching the specific ID
+ */
+ public static Color getColor(int systemColorID) {
+ Display display = Display.getCurrent();
+ return display.getSystemColor(systemColorID);
+ }
+ /**
+ * Returns a {@link Color} given its red, green and blue component values.
+ *
+ * @param r
+ * the red component of the color
+ * @param g
+ * the green component of the color
+ * @param b
+ * the blue component of the color
+ * @return the {@link Color} matching the given red, green and blue component values
+ */
+ public static Color getColor(int r, int g, int b) {
+ return getColor(new RGB(r, g, b));
+ }
+ /**
+ * Returns a {@link Color} given its RGB value.
+ *
+ * @param rgb
+ * the {@link RGB} value of the color
+ * @return the {@link Color} matching the RGB value
+ */
+ public static Color getColor(RGB rgb) {
+ Color color = m_colorMap.get(rgb);
+ if (color == null) {
+ Display display = Display.getCurrent();
+ color = new Color(display, rgb);
+ m_colorMap.put(rgb, color);
+ }
+ return color;
+ }
+ /**
+ * Dispose of all the cached {@link Color}'s.
+ */
+ public static void disposeColors() {
+ for (Color color : m_colorMap.values()) {
+ color.dispose();
+ }
+ m_colorMap.clear();
+ }
+ ////////////////////////////////////////////////////////////////////////////
+ //
+ // Image
+ //
+ ////////////////////////////////////////////////////////////////////////////
+ /**
+ * Maps image paths to images.
+ */
+ private static Map<String, Image> m_imageMap = new HashMap<String, Image>();
+ /**
+ * Returns an {@link Image} encoded by the specified {@link InputStream}.
+ *
+ * @param stream
+ * the {@link InputStream} encoding the image data
+ * @return the {@link Image} encoded by the specified input stream
+ */
+ protected static Image getImage(InputStream stream) throws IOException {
+ try {
+ Display display = Display.getCurrent();
+ ImageData data = new ImageData(stream);
+ if (data.transparentPixel > 0) {
+ return new Image(display, data, data.getTransparencyMask());
+ }
+ return new Image(display, data);
+ } finally {
+ stream.close();
+ }
+ }
+ /**
+ * Returns an {@link Image} stored in the file at the specified path.
+ *
+ * @param path
+ * the path to the image file
+ * @return the {@link Image} stored in the file at the specified path
+ */
+ public static Image getImage(String path) {
+ Image image = m_imageMap.get(path);
+ if (image == null) {
+ try {
+ image = getImage(new FileInputStream(path));
+ m_imageMap.put(path, image);
+ } catch (Exception e) {
+ image = getMissingImage();
+ m_imageMap.put(path, image);
+ }
+ }
+ return image;
+ }
+ /**
+ * Returns an {@link Image} stored in the file at the specified path relative to the specified class.
+ *
+ * @param clazz
+ * the {@link Class} relative to which to find the image
+ * @param path
+ * the path to the image file, if starts with <code>'/'</code>
+ * @return the {@link Image} stored in the file at the specified path
+ */
+ public static Image getImage(Class<?> clazz, String path) {
+ String key = clazz.getName() + '|' + path;
+ Image image = m_imageMap.get(key);
+ if (image == null) {
+ try {
+ image = getImage(clazz.getResourceAsStream(path));
+ m_imageMap.put(key, image);
+ } catch (Exception e) {
+ image = getMissingImage();
+ m_imageMap.put(key, image);
+ }
+ }
+ return image;
+ }
+ private static final int MISSING_IMAGE_SIZE = 10;
+ /**
+ * @return the small {@link Image} that can be used as placeholder for missing image.
+ */
+ private static Image getMissingImage() {
+ Image image = new Image(Display.getCurrent(), MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE);
+ //
+ GC gc = new GC(image);
+ gc.setBackground(getColor(SWT.COLOR_RED));
+ gc.fillRectangle(0, 0, MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE);
+ gc.dispose();
+ //
+ return image;
+ }
+ /**
+ * Style constant for placing decorator image in top left corner of base image.
+ */
+ public static final int TOP_LEFT = 1;
+ /**
+ * Style constant for placing decorator image in top right corner of base image.
+ */
+ public static final int TOP_RIGHT = 2;
+ /**
+ * Style constant for placing decorator image in bottom left corner of base image.
+ */
+ public static final int BOTTOM_LEFT = 3;
+ /**
+ * Style constant for placing decorator image in bottom right corner of base image.
+ */
+ public static final int BOTTOM_RIGHT = 4;
+ /**
+ * Internal value.
+ */
+ protected static final int LAST_CORNER_KEY = 5;
+ /**
+ * Maps images to decorated images.
+ */
+ @SuppressWarnings("unchecked")
+ private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY];
+ /**
+ * Returns an {@link Image} composed of a base image decorated by another image.
+ *
+ * @param baseImage
+ * the base {@link Image} that should be decorated
+ * @param decorator
+ * the {@link Image} to decorate the base image
+ * @return {@link Image} The resulting decorated image
+ */
+ public static Image decorateImage(Image baseImage, Image decorator) {
+ return decorateImage(baseImage, decorator, BOTTOM_RIGHT);
+ }
+ /**
+ * Returns an {@link Image} composed of a base image decorated by another image.
+ *
+ * @param baseImage
+ * the base {@link Image} that should be decorated
+ * @param decorator
+ * the {@link Image} to decorate the base image
+ * @param corner
+ * the corner to place decorator image
+ * @return the resulting decorated {@link Image}
+ */
+ public static Image decorateImage(final Image baseImage, final Image decorator, final int corner) {
+ if (corner <= 0 || corner >= LAST_CORNER_KEY) {
+ throw new IllegalArgumentException("Wrong decorate corner");
+ }
+ Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner];
+ if (cornerDecoratedImageMap == null) {
+ cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>();
+ m_decoratedImageMap[corner] = cornerDecoratedImageMap;
+ }
+ Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage);
+ if (decoratedMap == null) {
+ decoratedMap = new HashMap<Image, Image>();
+ cornerDecoratedImageMap.put(baseImage, decoratedMap);
+ }
+ //
+ Image result = decoratedMap.get(decorator);
+ if (result == null) {
+ Rectangle bib = baseImage.getBounds();
+ Rectangle dib = decorator.getBounds();
+ //
+ result = new Image(Display.getCurrent(), bib.width, bib.height);
+ //
+ GC gc = new GC(result);
+ gc.drawImage(baseImage, 0, 0);
+ if (corner == TOP_LEFT) {
+ gc.drawImage(decorator, 0, 0);
+ } else if (corner == TOP_RIGHT) {
+ gc.drawImage(decorator, bib.width - dib.width, 0);
+ } else if (corner == BOTTOM_LEFT) {
+ gc.drawImage(decorator, 0, bib.height - dib.height);
+ } else if (corner == BOTTOM_RIGHT) {
+ gc.drawImage(decorator, bib.width - dib.width, bib.height - dib.height);
+ }
+ gc.dispose();
+ //
+ decoratedMap.put(decorator, result);
+ }
+ return result;
+ }
+ /**
+ * Dispose all of the cached {@link Image}'s.
+ */
+ public static void disposeImages() {
+ // dispose loaded images
+ {
+ for (Image image : m_imageMap.values()) {
+ image.dispose();
+ }
+ m_imageMap.clear();
+ }
+ // dispose decorated images
+ for (int i = 0; i < m_decoratedImageMap.length; i++) {
+ Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i];
+ if (cornerDecoratedImageMap != null) {
+ for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values()) {
+ for (Image image : decoratedMap.values()) {
+ image.dispose();
+ }
+ decoratedMap.clear();
+ }
+ cornerDecoratedImageMap.clear();
+ }
+ }
+ }
+ ////////////////////////////////////////////////////////////////////////////
+ //
+ // Font
+ //
+ ////////////////////////////////////////////////////////////////////////////
+ /**
+ * Maps font names to fonts.
+ */
+ private static Map<String, Font> m_fontMap = new HashMap<String, Font>();
+ /**
+ * Maps fonts to their bold versions.
+ */
+ private static Map<Font, Font> m_fontToBoldFontMap = new HashMap<Font, Font>();
+ /**
+ * Returns a {@link Font} based on its name, height and style.
+ *
+ * @param name
+ * the name of the font
+ * @param height
+ * the height of the font
+ * @param style
+ * the style of the font
+ * @return {@link Font} The font matching the name, height and style
+ */
+ public static Font getFont(String name, int height, int style) {
+ return getFont(name, height, style, false, false);
+ }
+ /**
+ * Returns a {@link Font} based on its name, height and style. Windows-specific strikeout and underline
+ * flags are also supported.
+ *
+ * @param name
+ * the name of the font
+ * @param size
+ * the size of the font
+ * @param style
+ * the style of the font
+ * @param strikeout
+ * the strikeout flag (warning: Windows only)
+ * @param underline
+ * the underline flag (warning: Windows only)
+ * @return {@link Font} The font matching the name, height, style, strikeout and underline
+ */
+ public static Font getFont(String name, int size, int style, boolean strikeout, boolean underline) {
+ String fontName = name + '|' + size + '|' + style + '|' + strikeout + '|' + underline;
+ Font font = m_fontMap.get(fontName);
+ if (font == null) {
+ FontData fontData = new FontData(name, size, style);
+ if (strikeout || underline) {
+ try {
+ Class<?> logFontClass = Class.forName("org.eclipse.swt.internal.win32.LOGFONT"); //$NON-NLS-1$
+ Object logFont = FontData.class.getField("data").get(fontData); //$NON-NLS-1$
+ if (logFont != null && logFontClass != null) {
+ if (strikeout) {
+ logFontClass.getField("lfStrikeOut").set(logFont, Byte.valueOf((byte) 1)); //$NON-NLS-1$
+ }
+ if (underline) {
+ logFontClass.getField("lfUnderline").set(logFont, Byte.valueOf((byte) 1)); //$NON-NLS-1$
+ }
+ }
+ } catch (Throwable e) {
+ System.err.println("Unable to set underline or strikeout" + " (probably on a non-Windows platform). " + e); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+ font = new Font(Display.getCurrent(), fontData);
+ m_fontMap.put(fontName, font);
+ }
+ return font;
+ }
+ /**
+ * Returns a bold version of the given {@link Font}.
+ *
+ * @param baseFont
+ * the {@link Font} for which a bold version is desired
+ * @return the bold version of the given {@link Font}
+ */
+ public static Font getBoldFont(Font baseFont) {
+ Font font = m_fontToBoldFontMap.get(baseFont);
+ if (font == null) {
+ FontData fontDatas[] = baseFont.getFontData();
+ FontData data = fontDatas[0];
+ font = new Font(Display.getCurrent(), data.getName(), data.getHeight(), SWT.BOLD);
+ m_fontToBoldFontMap.put(baseFont, font);
+ }
+ return font;
+ }
+ /**
+ * Dispose all of the cached {@link Font}'s.
+ */
+ public static void disposeFonts() {
+ // clear fonts
+ for (Font font : m_fontMap.values()) {
+ font.dispose();
+ }
+ m_fontMap.clear();
+ // clear bold fonts
+ for (Font font : m_fontToBoldFontMap.values()) {
+ font.dispose();
+ }
+ m_fontToBoldFontMap.clear();
+ }
+ ////////////////////////////////////////////////////////////////////////////
+ //
+ // Cursor
+ //
+ ////////////////////////////////////////////////////////////////////////////
+ /**
+ * Maps IDs to cursors.
+ */
+ private static Map<Integer, Cursor> m_idToCursorMap = new HashMap<Integer, Cursor>();
+ /**
+ * Returns the system cursor matching the specific ID.
+ *
+ * @param id
+ * int The ID value for the cursor
+ * @return Cursor The system cursor matching the specific ID
+ */
+ public static Cursor getCursor(int id) {
+ Integer key = Integer.valueOf(id);
+ Cursor cursor = m_idToCursorMap.get(key);
+ if (cursor == null) {
+ cursor = new Cursor(Display.getDefault(), id);
+ m_idToCursorMap.put(key, cursor);
+ }
+ return cursor;
+ }
+ /**
+ * Dispose all of the cached cursors.
+ */
+ public static void disposeCursors() {
+ for (Cursor cursor : m_idToCursorMap.values()) {
+ cursor.dispose();
+ }
+ m_idToCursorMap.clear();
+ }
+ ////////////////////////////////////////////////////////////////////////////
+ //
+ // General
+ //
+ ////////////////////////////////////////////////////////////////////////////
+ /**
+ * Dispose of cached objects and their underlying OS resources. This should only be called when the cached
+ * objects are no longer needed (e.g. on application shutdown).
+ */
+ public static void dispose() {
+ disposeColors();
+ disposeImages();
+ disposeFonts();
+ disposeCursors();
+ }
+} \ No newline at end of file
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/org/eclipse/ecf/examples/remoteservices/quotes/consumer/Activator.java b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/org/eclipse/ecf/examples/remoteservices/quotes/consumer/Activator.java
new file mode 100644
index 000000000..0885fe4bf
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/org/eclipse/ecf/examples/remoteservices/quotes/consumer/Activator.java
@@ -0,0 +1,36 @@
+package org.eclipse.ecf.examples.remoteservices.quotes.consumer;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+ private static BundleContext context;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext
+ * )
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ Activator.context = null;
+ }
+
+}
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/org/eclipse/ecf/examples/remoteservices/quotes/consumer/Application.java b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/org/eclipse/ecf/examples/remoteservices/quotes/consumer/Application.java
new file mode 100644
index 000000000..b2a7cb15a
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/org/eclipse/ecf/examples/remoteservices/quotes/consumer/Application.java
@@ -0,0 +1,140 @@
+package org.eclipse.ecf.examples.remoteservices.quotes.consumer;
+
+import java.lang.reflect.Method;
+
+import org.eclipse.ecf.services.quotes.QuoteService;
+import org.eclipse.equinox.app.IApplication;
+import org.eclipse.equinox.app.IApplicationContext;
+import org.eclipse.swt.widgets.Display;
+import org.osgi.framework.ServiceEvent;
+import org.osgi.framework.ServiceListener;
+import org.osgi.framework.ServiceReference;
+
+public class Application implements IApplication {
+
+ private ConsumerUI ui;
+
+ @Override
+ public Object start(IApplicationContext context) throws Exception {
+
+ System.out.println("Started");
+
+ ui = new ConsumerUI(null);
+ addListener();
+ ui.main(null);
+
+ return null;
+ }
+
+ @Override
+ public void stop() {
+ System.out.println("Stopped");
+
+ }
+
+ private void addListener() {
+ Activator.getContext().addServiceListener(new ServiceListener() {
+
+ @Override
+ public void serviceChanged(final ServiceEvent event) {
+
+ /*
+ * Do only for registrations
+ */
+ if (event.getType() == ServiceEvent.REGISTERED) {
+
+ try {
+ Object obj = Activator.getContext().getService(event.getServiceReference());
+
+ /*
+ * Post all the information we have on this service
+ */
+ fillInfo(event.getServiceReference(), obj);
+
+ /*
+ * If we know this service
+ */
+ if (obj instanceof QuoteService) {
+ final QuoteService service = (QuoteService) Activator.getContext().getService(
+ event.getServiceReference());
+
+ final String sLabel = service.getServiceDescription();
+ final String sQuote = service.getRandomQuote();
+
+ Display.getDefault().asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ ui.getLabel().setText(sLabel);
+ ui.getStyledText().setText(sQuote);
+ ui.getDispatcher().setValue(1);
+ ui.redraw();
+
+ }
+ });
+
+ }
+ } catch (final Exception e) {
+ Display.getDefault().asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ ui.getLabel().setText(e.getLocalizedMessage() + "");
+ ui.getStyledText().setText("");
+ ui.getDispatcher().setValue(-1);
+ ui.redraw();
+
+ }
+ });
+ }
+
+ }
+ }
+
+ private void fillInfo(ServiceReference s, Object obj) {
+ final StringBuffer infoBuf = new StringBuffer();
+ infoBuf.append("ServiceReference Info\n\t");
+ infoBuf.append("Bundle:\t").append(s.getBundle().getSymbolicName()).append("\n\n\t");
+ for (String key : s.getPropertyKeys())
+ if (s.getProperty(key) instanceof Object[])
+ for (int i = 0; i < ((Object[]) s.getProperty(key)).length; i++)
+ if (i == 0)
+ infoBuf.append("Property:\t").append(key).append("=")
+ .append(((Object[]) s.getProperty(key))[i].toString()).append("\n\t");
+ else
+ infoBuf.append("\t\t\t").append(key).append("=")
+ .append(((Object[]) s.getProperty(key))[i]).append("\n\t");
+ else
+ infoBuf.append("Property:\t").append(key).append("=").append(s.getProperty(key)).append("\n\t");
+ infoBuf.append("\nService Info\n\t");
+ infoBuf.append("Class:\t").append(obj.getClass().getName()).append("\n\t");
+ infoBuf.append("\nImplements").append("\n\t");
+ for (Class<?> i : obj.getClass().getInterfaces())
+ infoBuf.append("Class:\t").append(i.getName()).append("\n\t");
+ infoBuf.append("\nSupers").append("\n\t");
+ Class<?> sc = obj.getClass().getSuperclass();
+ while (sc != null && sc != Object.class) {
+ infoBuf.append("Class:\t").append(sc.getName()).append("\n\t");
+ sc = sc.getClass().getSuperclass();
+ }
+ infoBuf.append("\nMethods").append("\n\t");
+ for (Method m : obj.getClass().getMethods()) {
+ infoBuf.append("Method:\t").append("(").append(m.getReturnType()).append(") ").append(m.getName())
+ .append("(");
+ for (Class<?> c : m.getParameterTypes())
+ infoBuf.append(c.getSimpleName()).append(" ");
+ infoBuf.append(")\n\t");
+ }
+
+ Display.getDefault().asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ ui.getInfo().setText(infoBuf.toString());
+
+ }
+ });
+ }
+ });
+ }
+}
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/org/eclipse/ecf/examples/remoteservices/quotes/consumer/ConsumerUI.java b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/org/eclipse/ecf/examples/remoteservices/quotes/consumer/ConsumerUI.java
new file mode 100644
index 000000000..99da50fdb
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/org/eclipse/ecf/examples/remoteservices/quotes/consumer/ConsumerUI.java
@@ -0,0 +1,206 @@
+package org.eclipse.ecf.examples.remoteservices.quotes.consumer;
+
+import org.eclipse.ecf.core.ContainerCreateException;
+import org.eclipse.ecf.core.ContainerFactory;
+import org.eclipse.ecf.core.IContainer;
+import org.eclipse.ecf.provider.zookeeper.core.ZooDiscoveryContainerInstantiator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+import com.remainsoftware.osgilloscope.OSGilloscope;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+
+public class ConsumerUI extends Shell {
+ private Text servers;
+ private Label label;
+ private StyledText styledText;
+ private OSGilloscope gilloscope;
+ private Dispatcher dispatcher;
+ private Text info;
+
+ /**
+ * Launch the application.
+ *
+ * @param args
+ */
+ public void main(String args[]) {
+ try {
+ // Display display = Display.getDefault();
+ // ConsumerUI shell = new ConsumerUI(display);
+ getShell().open();
+ getShell().layout();
+ while (!getShell().isDisposed()) {
+ if (!getDisplay().readAndDispatch()) {
+ getDisplay().sleep();
+ }
+ }
+ getDisplay().dispose();
+ } catch (Exception e) {
+ }
+ }
+
+ /**
+ * Create the shell.
+ *
+ * @param display
+ */
+ public ConsumerUI(Display display) {
+ super(display, SWT.SHELL_TRIM);
+ setLayout(new FillLayout(SWT.HORIZONTAL));
+
+ Composite composite = new Composite(this, SWT.NONE);
+ composite.setLayout(new GridLayout(3, false));
+
+ Label lblCommaSeperatedList = new Label(composite, SWT.NONE);
+ lblCommaSeperatedList.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER,
+ false, false, 1, 1));
+ lblCommaSeperatedList.setText("Servers");
+
+ servers = (new Text(composite, SWT.BORDER));
+ getServers().setText("yazafatutu.com");
+ getServers().setLayoutData(
+ new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+
+ Button btnConnect = new Button(composite, SWT.NONE);
+ btnConnect.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseUp(MouseEvent e) {
+ startZookeeper();
+ }
+ });
+ btnConnect.setText("Connect");
+
+ TabFolder tabFolder = new TabFolder(composite, SWT.BOTTOM);
+ tabFolder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1));
+
+ TabItem tbtmUi = new TabItem(tabFolder, SWT.NONE);
+ tbtmUi.setText("UI");
+
+ Composite composite_2 = new Composite(tabFolder, SWT.NONE);
+ tbtmUi.setControl(composite_2);
+ composite_2.setLayout(new GridLayout(1, false));
+
+ gilloscope = new OSGilloscope(composite_2, SWT.NONE);
+ GridData gd_gilloscope = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
+ gd_gilloscope.heightHint = 100;
+ gilloscope.setLayoutData(gd_gilloscope);
+
+ Composite composite_1 = new Composite(composite_2, SWT.BORDER);
+ composite_1.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+ composite_1.setLayout(new GridLayout(1, false));
+
+ label = (new Label(composite_1, SWT.NONE));
+ getLabel().setAlignment(SWT.CENTER);
+ getLabel().setFont(new Font(null, "Segoe UI", 15, SWT.BOLD));
+ getLabel().setLayoutData(
+ new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1));
+ getLabel().setText("New Label");
+
+ styledText = (new StyledText(composite_1, SWT.BORDER | SWT.WRAP));
+ styledText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+ styledText.setEditable(false);
+
+ TabItem tbtmInfo = new TabItem(tabFolder, SWT.NONE);
+ tbtmInfo.setText("Info");
+
+ Composite composite_3 = new Composite(tabFolder, SWT.NONE);
+ tbtmInfo.setControl(composite_3);
+ composite_3.setLayout(new FillLayout(SWT.HORIZONTAL));
+
+ info =new Text(composite_3, SWT.BORDER | SWT.V_SCROLL | SWT.MULTI);
+ createContents();
+ }
+
+ protected void startZookeeper() {
+
+ IContainer singleton = null;
+ try {
+ singleton = ContainerFactory.getDefault().createContainer(
+ ZooDiscoveryContainerInstantiator.NAME);
+ } catch (ContainerCreateException e1) {
+ }
+
+ if (singleton.getConnectedID() != null)
+ singleton.disconnect();
+
+ try {
+ singleton.connect(
+ singleton.getConnectNamespace().createInstance(
+ new String[] { "zoodiscovery.flavor.centralized="
+ + getServers().getText() }), null);
+ } catch (Exception e) {
+ getLabel().setText(e.getLocalizedMessage());
+ getStyledText().setText(e.getCause().toString());
+ }
+ }
+
+ /**
+ * Create contents of the shell.
+ */
+ protected void createContents() {
+ setText("ECF Zookeeper Quote Service Consumer");
+ setSize(450, 381);
+
+ dispatcher = new Dispatcher() {
+
+ @Override
+ public void setValue(int value) {
+ if (isSoundRequired())
+ clipper.playClip(getActiveSoundfile(), 0);
+
+ getGilloscope().setValues(OSGilloscope.HEARTBEAT);
+
+ }
+
+ public OSGilloscope getGilloscope() {
+ return gilloscope;
+ };
+
+ @Override
+ public boolean isServiceActive() {
+ return true;
+ }
+ };
+
+ dispatcher.dispatch();
+
+ }
+
+ @Override
+ protected void checkSubclass() {
+ // Disable the check that prevents subclassing of SWT components
+ }
+
+ public Label getLabel() {
+ return label;
+ }
+
+ public StyledText getStyledText() {
+ return styledText;
+ }
+
+ public Text getServers() {
+ return servers;
+ }
+
+ public Dispatcher getDispatcher() {
+ return dispatcher;
+ }
+
+ public Text getInfo() {
+ return info;
+ }
+}
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/org/eclipse/ecf/examples/remoteservices/quotes/consumer/Dispatcher.java b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/org/eclipse/ecf/examples/remoteservices/quotes/consumer/Dispatcher.java
new file mode 100644
index 000000000..f2fa37e58
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/src/org/eclipse/ecf/examples/remoteservices/quotes/consumer/Dispatcher.java
@@ -0,0 +1,180 @@
+package org.eclipse.ecf.examples.remoteservices.quotes.consumer;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+
+import javax.sound.sampled.AudioSystem;
+import javax.sound.sampled.Clip;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+
+import com.remainsoftware.osgilloscope.OSGilloscope;
+
+/**
+ * Dispatch an osgilloscope.
+ *
+ */
+public abstract class Dispatcher {
+
+ /**
+ * Play a sound clip.
+ *
+ */
+ public class Clipper {
+ Clip clip = null;
+ String oldFile = "";
+
+ public void playClip(String file, int loop) {
+ try {
+
+ if (clip == null || !file.equals(oldFile)) {
+ oldFile = file;
+ clip = AudioSystem.getClip();
+ clip.open(AudioSystem.getAudioInputStream(new File(file)));
+ }
+ if (clip.isActive())
+ return;
+ // clip.stop(); << Alternative
+
+ clip.setFramePosition(0);
+ clip.loop(loop);
+
+ } catch (Exception e) {
+ }
+ }
+ }
+
+ public abstract void setValue(int value);
+
+ Clipper clipper = new Clipper();
+ /**
+ * Contains a small image that can serve as the background of the image.
+ */
+ final public static int[] BACKGROUND_MONITOR = new int[] { 255, 216, 255, 224, 0, 16, 74, 70, 73, 70, 0, 1, 1, 1,
+ 0, 72, 0, 72, 0, 0, 255, 254, 0, 19, 67, 114, 101, 97, 116, 101, 100, 32, 119, 105, 116, 104, 32, 71, 73,
+ 77, 80, 255, 219, 0, 67, 0, 5, 3, 4, 4, 4, 3, 5, 4, 4, 4, 5, 5, 5, 6, 7, 12, 8, 7, 7, 7, 7, 15, 11, 11, 9,
+ 12, 17, 15, 18, 18, 17, 15, 17, 17, 19, 22, 28, 23, 19, 20, 26, 21, 17, 17, 24, 33, 24, 26, 29, 29, 31, 31,
+ 31, 19, 23, 34, 36, 34, 30, 36, 28, 30, 31, 30, 255, 219, 0, 67, 1, 5, 5, 5, 7, 6, 7, 14, 8, 8, 14, 30, 20,
+ 17, 20, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 255,
+ 192, 0, 17, 8, 0, 20, 0, 20, 3, 1, 34, 0, 2, 17, 1, 3, 17, 1, 255, 196, 0, 23, 0, 1, 1, 1, 1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 7, 255, 196, 0, 34, 16, 0, 2, 2, 0, 5, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 3, 4, 2, 20, 33, 52, 84, 17, 115, 145, 178, 209, 97, 255, 196, 0, 23, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2, 0, 1, 3, 255, 196, 0, 27, 17, 0, 2, 2, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,
+ 17, 33, 49, 81, 18, 255, 218, 0, 12, 3, 1, 0, 2, 17, 3, 17, 0, 63, 0, 225, 37, 87, 118, 245, 59, 79, 217,
+ 140, 212, 60, 24, 60, 226, 250, 83, 110, 196, 74, 10, 205, 211, 133, 245, 141, 180, 155, 122, 106, 255, 0,
+ 78, 77, 187, 88, 4, 164, 237, 96, 204, 5, 89, 168, 120, 48, 121, 197, 244, 10, 223, 5, 233, 240, 148, 170,
+ 238, 222, 167, 105, 251, 48, 9, 237, 20, 182, 137, 64, 6, 140, 255, 217 };
+ private Image image;
+
+ /**
+ * @wbp.parser.entryPoint
+ */
+ public void dispatch() {
+
+ init();
+
+ Runnable runnable = new Runnable() {
+
+ public void run() {
+
+ getGilloscope().setPercentage(isPercentage());
+ getGilloscope().setTailSize(isTailSizeMax() ? OSGilloscope.TAILSIZE_MAX : getTailSize());
+ getGilloscope().setSteady(isSteady(), getSteadyPosition());
+ getGilloscope().setFade(getFade());
+ getGilloscope().setTailFade(getTailFade());
+ getGilloscope().setConnect(mustConnect());
+ getGilloscope().setBackgroundImage(getBackgroundImage());
+ if (isServiceActive())
+ getGilloscope().setForeground(getGilloscope().getDisplay().getSystemColor(SWT.COLOR_GREEN));
+ else
+ getGilloscope().setForeground(getGilloscope().getDisplay().getSystemColor(SWT.COLOR_RED));
+ getGilloscope().redraw();
+
+ getGilloscope().getDisplay().timerExec(getDelayloop(), this);
+ }
+ };
+ getGilloscope().getDisplay().timerExec(getDelayloop(), runnable);
+
+ }
+
+ public Image getBackgroundImage() {
+
+ if (image == null) {
+ byte[] bytes = new byte[BACKGROUND_MONITOR.length];
+ for (int i = 0; i < BACKGROUND_MONITOR.length; i++)
+ bytes[i] = (byte) BACKGROUND_MONITOR[i];
+ image = new Image(null, new ByteArrayInputStream(bytes));
+ }
+ return image;
+ }
+
+ public void init() {
+ }
+
+ public int getPulse() {
+ return 40;
+ }
+
+ public String getActiveSoundfile() {
+ return "";
+ }
+
+ public int getDelayloop() {
+ return 80;
+ }
+
+ public abstract OSGilloscope getGilloscope();
+
+ public String getInactiveSoundfile() {
+ return "";
+ }
+
+ public boolean isTailSizeMax() {
+ return true;
+ }
+
+ public boolean isPercentage() {
+ return true;
+ }
+
+ public boolean isServiceActive() {
+ return false;
+ }
+
+ public boolean isSoundRequired() {
+ return false;
+ }
+
+ public int getTailSize() {
+ return OSGilloscope.TAILSIZE_MAX;
+ }
+
+ public boolean isSteady() {
+ return false;
+ }
+
+ public int getSteadyPosition() {
+ return 200;
+ }
+
+ public boolean getFade() {
+ return true;
+
+ }
+
+ public int getTailFade() {
+ return 25;
+ }
+
+ public boolean mustConnect() {
+ return false;
+ }
+
+ @Override
+ protected void finalize() throws Throwable {
+ if (image != null && !image.isDisposed())
+ image.dispose();
+ }
+}
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/zooquotesConsumerGeneric.product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/zooquotesConsumerGeneric.product
new file mode 100644
index 000000000..f48da2fb4
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.quotes.consumer/zooquotesConsumerGeneric.product
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="Zookeeper Discoverable Quotes Service" uid="org.eclipse.ecf.examples.remoteservices.quotes.consumer.product" id="org.eclipse.ecf.examples.remoteservices.quotes.consumer.zooquotesgenericconsumer" application="org.eclipse.ecf.examples.remoteservices.quotes.consumer.id1" version="1.0.0" useFeatures="false" includeLaunchers="true">
+
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-containerType ecf.generic.client</programArgs>
+ <vmArgs>-Dzoodiscovery.flavor=zoodiscovery.flavor.centralized=yazafatutu.com:2181</vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+
+ <launcher name="zooQuotes">
+ <solaris/>
+ <win useIco="false">
+ <bmp
+ winSmallHigh="/org.eclipse.ecf.examples.remoteservices.quotes.consumer/images/quotes.bmp"
+ winMediumHigh="/org.eclipse.ecf.examples.remoteservices.quotes.consumer/images/quotes32x32x32.bmp"
+ winLargeHigh="/org.eclipse.ecf.examples.remoteservices.quotes.consumer/images/quotes48x48x32.bmp"/>
+ </win>
+ </launcher>
+
+
+ <vm>
+ </vm>
+
+
+ <plugins>
+ <plugin id="org.apache.log4j"/>
+ <plugin id="org.apache.zookeeper"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.runtime"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.examples.remoteservices.quotes.consumer"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.discovery"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.provider.zookeeper"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.services.quotes"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.equinox.simpleconfigurator"/>
+ <plugin id="org.eclipse.equinox.util"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.swt"/>
+ <plugin id="org.eclipse.swt.carbon.macosx" fragment="true"/>
+ <plugin id="org.eclipse.swt.cocoa.macosx" fragment="true"/>
+ <plugin id="org.eclipse.swt.cocoa.macosx.x86_64" fragment="true"/>
+ <plugin id="org.eclipse.swt.gtk.linux.ppc" fragment="true"/>
+ <plugin id="org.eclipse.swt.gtk.linux.ppc64" fragment="true"/>
+ <plugin id="org.eclipse.swt.gtk.linux.s390" fragment="true"/>
+ <plugin id="org.eclipse.swt.gtk.linux.s390x" fragment="true"/>
+ <plugin id="org.eclipse.swt.gtk.linux.x86" fragment="true"/>
+ <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>
+ <plugin id="org.eclipse.swt.gtk.solaris.sparc" fragment="true"/>
+ <plugin id="org.eclipse.swt.gtk.solaris.x86" fragment="true"/>
+ <plugin id="org.eclipse.swt.motif.aix.ppc" fragment="true"/>
+ <plugin id="org.eclipse.swt.motif.hpux.ia64_32" fragment="true"/>
+ <plugin id="org.eclipse.swt.motif.linux.x86" fragment="true"/>
+ <plugin id="org.eclipse.swt.motif.solaris.sparc" fragment="true"/>
+ <plugin id="org.eclipse.swt.photon.qnx.x86" fragment="true"/>
+ <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
+ <plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="3" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="2" />
+ </configurations>
+
+</product>

Back to the top