Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

First draft

  • Loading branch information...
commit 57070bfb105a1718c1410cdd4aacb0b3b027a4a5 1 parent de17f91
@fuxi83 authored
Showing with 1,885 additions and 0 deletions.
  1. +9 −0 Droplet/.classpath
  2. +1 −0  Droplet/.gitignore
  3. +17 −0 Droplet/.project
  4. +292 −0 Droplet/.settings/org.eclipse.jdt.core.prefs
  5. +59 −0 Droplet/.settings/org.eclipse.jdt.ui.prefs
  6. +74 −0 Droplet/build.xml
  7. +7 −0 Droplet/eclipse-settings/droplet-settings.epf
  8. +16 −0 Droplet/launch/Droplet.launch
  9. BIN  Droplet/lib/RXTXcomm.jar
  10. BIN  Droplet/lib/RXTXcomm_NEW.jar
  11. BIN  Droplet/lib/jgoodies-animation-1.3.0.jar
  12. BIN  Droplet/lib/jgoodies-binding-2.5.1.jar
  13. BIN  Droplet/lib/jgoodies-common-1.2.1.jar
  14. BIN  Droplet/lib/jgoodies-forms-1.4.2.jar
  15. BIN  Droplet/lib/jgoodies-looks-2.4.2.jar
  16. BIN  Droplet/lib/jgoodies-validation-2.3.2.jar
  17. BIN  Droplet/lib/librxtxSerial.jnilib
  18. BIN  Droplet/lib/librxtxSerial_NEW.jnilib
  19. +30 −0 Droplet/src/com/stefanbrenner/droplet/model/ICamera.java
  20. +30 −0 Droplet/src/com/stefanbrenner/droplet/model/ICameraAction.java
  21. +40 −0 Droplet/src/com/stefanbrenner/droplet/model/IDroplet.java
  22. +44 −0 Droplet/src/com/stefanbrenner/droplet/model/IFlash.java
  23. +24 −0 Droplet/src/com/stefanbrenner/droplet/model/IFlashAction.java
  24. +36 −0 Droplet/src/com/stefanbrenner/droplet/model/INotificationSupport.java
  25. +30 −0 Droplet/src/com/stefanbrenner/droplet/model/IOffsetAction.java
  26. +44 −0 Droplet/src/com/stefanbrenner/droplet/model/IValve.java
  27. +30 −0 Droplet/src/com/stefanbrenner/droplet/model/IValveAction.java
  28. +61 −0 Droplet/src/com/stefanbrenner/droplet/model/internal/AbstractModelObject.java
  29. +41 −0 Droplet/src/com/stefanbrenner/droplet/model/internal/AbstractOffsetModelObject.java
  30. +54 −0 Droplet/src/com/stefanbrenner/droplet/model/internal/Camera.java
  31. +42 −0 Droplet/src/com/stefanbrenner/droplet/model/internal/CameraAction.java
  32. +73 −0 Droplet/src/com/stefanbrenner/droplet/model/internal/Droplet.java
  33. +72 −0 Droplet/src/com/stefanbrenner/droplet/model/internal/Flash.java
  34. +29 −0 Droplet/src/com/stefanbrenner/droplet/model/internal/FlashAction.java
  35. +80 −0 Droplet/src/com/stefanbrenner/droplet/model/internal/Valve.java
  36. +42 −0 Droplet/src/com/stefanbrenner/droplet/model/internal/ValveAction.java
  37. +153 −0 Droplet/src/com/stefanbrenner/droplet/ui/CommunicationPanel.java
  38. +41 −0 Droplet/src/com/stefanbrenner/droplet/ui/ConfigurationPanel.java
  39. +88 −0 Droplet/src/com/stefanbrenner/droplet/ui/Droplet.java
  40. +48 −0 Droplet/src/com/stefanbrenner/droplet/ui/DropletToolbar.java
  41. +117 −0 Droplet/src/com/stefanbrenner/droplet/ui/ProcessingPanel.java
  42. +57 −0 Droplet/src/com/stefanbrenner/droplet/ui/ValveActionPanel.java
  43. +76 −0 Droplet/src/com/stefanbrenner/droplet/ui/ValvePanel.java
  44. +28 −0 Droplet/src/com/stefanbrenner/droplet/ui/dvf.java
View
9 Droplet/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="lib" path="lib/jgoodies-binding-2.5.1.jar"/>
+ <classpathentry kind="lib" path="lib/jgoodies-common-1.2.1.jar"/>
+ <classpathentry kind="lib" path="lib/RXTXcomm.jar"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
View
1  Droplet/.gitignore
@@ -0,0 +1 @@
+/bin
View
17 Droplet/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>Droplet</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
View
292 Droplet/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,292 @@
+#Mon Jan 23 19:35:27 CET 2012
+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.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+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_resources_in_try=80
+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.alignment_for_union_type_in_multicatch=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.comment.preserve_white_space_between_code_and_line_comments=false
+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_field=insert
+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_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=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_annotation_on_type=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_try=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_semicolon_in_try_resources=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_try=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_try=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_semicolon_in_try_resources=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=80
+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_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
View
59 Droplet/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,59 @@
+#Mon Jan 23 19:40:26 CET 2012
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=false
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=false
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=org.eclipse.jdt.ui.default.eclipse_clean_up_profile
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=org.eclipse.jdt.ui.default.eclipse_profile
+formatter_settings_version=12
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Project\: Droplet - Toolkit for Liquid Art Photographers\n * Copyright (C) 2012 Stefan Brenner\n *\n * This file is part of Droplet.\n *\n * Droplet is free software\: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * Droplet is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with Droplet. If not, see &lt;http\://www.gnu.org/licenses/&gt;.\n *******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
View
74 Droplet/build.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- You may freely edit this file. See commented blocks below for -->
+<!-- some examples of how to customize the build. -->
+<!-- (If you delete it and reopen the project it will be recreated.) -->
+<!-- By default, only the Clean and Build commands use this build script. -->
+<!-- Commands such as Run, Debug, and Test only use this build script if -->
+<!-- the Compile on Save feature is turned off for the project. -->
+<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
+<!-- in the project's Project Properties dialog box.-->
+<project name="Droplet" default="default" basedir=".">
+ <description>Builds, tests, and runs the project Droplet.</description>
+ <import file="nbproject/build-impl.xml"/>
+ <!--
+
+ There exist several targets which are by default empty and which can be
+ used for execution of your tasks. These targets are usually executed
+ before and after some main targets. They are:
+
+ -pre-init: called before initialization of project properties
+ -post-init: called after initialization of project properties
+ -pre-compile: called before javac compilation
+ -post-compile: called after javac compilation
+ -pre-compile-single: called before javac compilation of single file
+ -post-compile-single: called after javac compilation of single file
+ -pre-compile-test: called before javac compilation of JUnit tests
+ -post-compile-test: called after javac compilation of JUnit tests
+ -pre-compile-test-single: called before javac compilation of single JUnit test
+ -post-compile-test-single: called after javac compilation of single JUunit test
+ -pre-jar: called before JAR building
+ -post-jar: called after JAR building
+ -post-clean: called after cleaning build products
+
+ (Targets beginning with '-' are not intended to be called on their own.)
+
+ Example of inserting an obfuscator after compilation could look like this:
+
+ <target name="-post-compile">
+ <obfuscate>
+ <fileset dir="${build.classes.dir}"/>
+ </obfuscate>
+ </target>
+
+ For list of available properties check the imported
+ nbproject/build-impl.xml file.
+
+
+ Another way to customize the build is by overriding existing main targets.
+ The targets of interest are:
+
+ -init-macrodef-javac: defines macro for javac compilation
+ -init-macrodef-junit: defines macro for junit execution
+ -init-macrodef-debug: defines macro for class debugging
+ -init-macrodef-java: defines macro for class execution
+ -do-jar-with-manifest: JAR building (if you are using a manifest)
+ -do-jar-without-manifest: JAR building (if you are not using a manifest)
+ run: execution of project
+ -javadoc-build: Javadoc generation
+ test-report: JUnit report generation
+
+ An example of overriding the target for project execution could look like this:
+
+ <target name="run" depends="Droplet-impl.jar">
+ <exec dir="bin" executable="launcher.exe">
+ <arg file="${dist.jar}"/>
+ </exec>
+ </target>
+
+ Notice that the overridden target depends on the jar target and not only on
+ the compile target as the regular run target does. Again, for a list of available
+ properties which you can use, check the target you are overriding in the
+ nbproject/build-impl.xml file.
+
+ -->
+</project>
View
7 Droplet/eclipse-settings/droplet-settings.epf
@@ -0,0 +1,7 @@
+#Mon Jan 23 19:33:05 CET 2012
+file_export_version=3.0
+/instance/org.eclipse.jdt.ui/org.eclipse.jdt.ui.formatterprofiles.version=12
+/instance/org.eclipse.jdt.ui/org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
+@org.eclipse.jdt.ui=3.7.1.r371_v20110824-0800
+\!/=
+/instance/org.eclipse.jdt.ui/org.eclipse.jdt.ui.javadoc=false
View
16 Droplet/launch/Droplet.launch
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/Droplet/src/com/stefanbrenner/droplet/ui/Droplet.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.stefanbrenner.droplet.ui.Droplet"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Droplet"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-d32"/>
+</launchConfiguration>
View
BIN  Droplet/lib/RXTXcomm.jar
Binary file not shown
View
BIN  Droplet/lib/RXTXcomm_NEW.jar
Binary file not shown
View
BIN  Droplet/lib/jgoodies-animation-1.3.0.jar
Binary file not shown
View
BIN  Droplet/lib/jgoodies-binding-2.5.1.jar
Binary file not shown
View
BIN  Droplet/lib/jgoodies-common-1.2.1.jar
Binary file not shown
View
BIN  Droplet/lib/jgoodies-forms-1.4.2.jar
Binary file not shown
View
BIN  Droplet/lib/jgoodies-looks-2.4.2.jar
Binary file not shown
View
BIN  Droplet/lib/jgoodies-validation-2.3.2.jar
Binary file not shown
View
BIN  Droplet/lib/librxtxSerial.jnilib
Binary file not shown
View
BIN  Droplet/lib/librxtxSerial_NEW.jnilib
Binary file not shown
View
30 Droplet/src/com/stefanbrenner/droplet/model/ICamera.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.model;
+
+public interface ICamera {
+
+ public static final String PROPERY_NAME = "Camera.Name";
+
+ public abstract String getName();
+
+ public abstract void setName(String name);
+
+}
View
30 Droplet/src/com/stefanbrenner/droplet/model/ICameraAction.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.model;
+
+public interface ICameraAction extends IOffsetAction, INotificationSupport {
+
+ public static final String PROPERTY_DURATION = "ValveAction.Duration";
+
+ public abstract void setDuration(Integer duration);
+
+ public abstract Integer getDuration();
+
+}
View
40 Droplet/src/com/stefanbrenner/droplet/model/IDroplet.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.model;
+
+import gnu.io.CommPortIdentifier;
+
+import java.util.List;
+
+public interface IDroplet {
+
+ public abstract List<IValve> getValves();
+
+ public abstract void setValves(List<IValve> valves);
+
+ public abstract void setCamera(ICamera camera);
+
+ public abstract ICamera getCamera();
+
+ public abstract void setPort(CommPortIdentifier port);
+
+ public abstract CommPortIdentifier getPort();
+
+}
View
44 Droplet/src/com/stefanbrenner/droplet/model/IFlash.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.model;
+
+import java.awt.Color;
+
+public interface IFlash {
+
+ public static final String PROPERTY_NAME = "Flash.Name";
+
+ public static final String PROPERTY_DESCRIPTION = "Flash.Description";
+
+ public static final String PROPERTY_COLOR = "Flash.Color";
+
+ public abstract void setColor(Color color);
+
+ public abstract Color getColor();
+
+ public abstract void setDescription(String description);
+
+ public abstract String getDescription();
+
+ public abstract void setName(String name);
+
+ public abstract String getName();
+
+}
View
24 Droplet/src/com/stefanbrenner/droplet/model/IFlashAction.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.model;
+
+public interface IFlashAction extends IOffsetAction, INotificationSupport {
+
+}
View
36 Droplet/src/com/stefanbrenner/droplet/model/INotificationSupport.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.model;
+
+import java.beans.PropertyChangeListener;
+
+public interface INotificationSupport {
+
+ void addPropertyChangeListener(PropertyChangeListener listener);
+
+ void addPropertyChangeListener(String propertyName,
+ PropertyChangeListener listener);
+
+ void removePropertyChangeListener(PropertyChangeListener listener);
+
+ void removePropertyChangeListener(String propertyName,
+ PropertyChangeListener listener);
+
+}
View
30 Droplet/src/com/stefanbrenner/droplet/model/IOffsetAction.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.model;
+
+public interface IOffsetAction {
+
+ public static final String PROPERTY_OFFSET = "OffsetAction.Offset";
+
+ public abstract void setOffset(Integer offset);
+
+ public abstract Integer getOffset();
+
+}
View
44 Droplet/src/com/stefanbrenner/droplet/model/IValve.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.model;
+
+import java.awt.Color;
+
+public interface IValve extends INotificationSupport {
+
+ public static final String PROPERTY_NAME = "Valve.Name";
+
+ public static final String PROPERTY_DESCRIPTION = "Valve.Description";
+
+ public static final String PROPERTY_COLOR = "Valve.Color";
+
+ public abstract String getName();
+
+ public abstract void setName(String name);
+
+ public abstract void setDescription(String description);
+
+ public abstract String getDescription();
+
+ public abstract void setColor(Color color);
+
+ public abstract Color getColor();
+
+}
View
30 Droplet/src/com/stefanbrenner/droplet/model/IValveAction.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.model;
+
+public interface IValveAction extends IOffsetAction, INotificationSupport {
+
+ public static final String PROPERTY_DURATION = "ValveAction.Duration";
+
+ public abstract void setDuration(Integer duration);
+
+ public abstract Integer getDuration();
+
+}
View
61 Droplet/src/com/stefanbrenner/droplet/model/internal/AbstractModelObject.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.model.internal;
+
+import com.jgoodies.binding.beans.Model;
+
+/**
+ * @author brenner
+ */
+public abstract class AbstractModelObject extends Model {
+
+ private static final long serialVersionUID = 1L;
+
+ // private final PropertyChangeSupport propertyChangeSupport = new
+ // PropertyChangeSupport(
+ // this);
+ //
+ // public void addPropertyChangeListener(PropertyChangeListener listener) {
+ // propertyChangeSupport.addPropertyChangeListener(listener);
+ // }
+ //
+ // public void addPropertyChangeListener(String propertyName,
+ // PropertyChangeListener listener) {
+ // propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
+ // }
+ //
+ // public void removePropertyChangeListener(PropertyChangeListener listener)
+ // {
+ // propertyChangeSupport.removePropertyChangeListener(listener);
+ // }
+ //
+ // public void removePropertyChangeListener(String propertyName,
+ // PropertyChangeListener listener) {
+ // propertyChangeSupport.removePropertyChangeListener(propertyName,
+ // listener);
+ // }
+ //
+ // protected void firePropertyChange(String propertyName, Object oldValue,
+ // Object newValue) {
+ // propertyChangeSupport.firePropertyChange(propertyName, oldValue,
+ // newValue);
+ // }
+
+}
View
41 Droplet/src/com/stefanbrenner/droplet/model/internal/AbstractOffsetModelObject.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.model.internal;
+
+import com.stefanbrenner.droplet.model.IOffsetAction;
+
+public abstract class AbstractOffsetModelObject extends AbstractModelObject
+ implements IOffsetAction {
+
+ private static final long serialVersionUID = 1L;
+
+ private Integer offset;
+
+ @Override
+ public Integer getOffset() {
+ return offset;
+ }
+
+ @Override
+ public void setOffset(Integer offset) {
+ firePropertyChange(PROPERTY_OFFSET, this.offset, this.offset = offset);
+ }
+
+}
View
54 Droplet/src/com/stefanbrenner/droplet/model/internal/Camera.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.model.internal;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.stefanbrenner.droplet.model.ICamera;
+import com.stefanbrenner.droplet.model.ICameraAction;
+
+public class Camera extends AbstractModelObject implements ICamera {
+
+ private static final long serialVersionUID = 1L;
+
+ private String name;
+
+ private List<ICameraAction> actions = new ArrayList<ICameraAction>();
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public void setName(String name) {
+ firePropertyChange(PROPERY_NAME, this.name, this.name = name);
+ }
+
+ public List<ICameraAction> getActions() {
+ return actions;
+ }
+
+ public void setActions(List<ICameraAction> actions) {
+ this.actions = actions;
+ }
+
+}
View
42 Droplet/src/com/stefanbrenner/droplet/model/internal/CameraAction.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.model.internal;
+
+import com.stefanbrenner.droplet.model.ICameraAction;
+
+public class CameraAction extends AbstractOffsetModelObject implements
+ ICameraAction {
+
+ private static final long serialVersionUID = 1L;
+
+ private Integer duration;
+
+ @Override
+ public Integer getDuration() {
+ return duration;
+ }
+
+ @Override
+ public void setDuration(Integer duration) {
+ firePropertyChange(PROPERTY_DURATION, this.duration,
+ this.duration = duration);
+ }
+
+}
View
73 Droplet/src/com/stefanbrenner/droplet/model/internal/Droplet.java
@@ -0,0 +1,73 @@
+/**************************************************import gnu.io.CommPortIdentifier;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.stefanbrenner.droplet.model.ICamera;
+import com.stefanbrenner.droplet.model.IDroplet;
+import com.stefanbrenner.droplet.model.IValve;
+
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.model.internal;
+
+import gnu.io.CommPortIdentifier;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.stefanbrenner.droplet.model.ICamera;
+import com.stefanbrenner.droplet.model.IDroplet;
+import com.stefanbrenner.droplet.model.IValve;
+
+public class Droplet extends AbstractModelObject implements IDroplet {
+
+ private static final long serialVersionUID = 1L;
+
+ private CommPortIdentifier port;
+
+ private List<IValve> valves = new ArrayList<IValve>();
+
+ private ICamera camera;
+
+ @Override
+ public CommPortIdentifier getPort() {
+ return port;
+ }
+
+ @Override
+ public void setPort(CommPortIdentifier port) {
+ this.port = port;
+ }
+
+ @Override
+ public List<IValve> getValves() {
+ return valves;
+ }
+
+ @Override
+ public void setValves(List<IValve> valves) {
+ this.valves = valves;
+ }
+
+ @Override
+ public ICamera getCamera() {
+ return camera;
+ }
+
+ @Override
+ public void setCamera(ICamera camera) {
+ this.camera = camera;
+ }
+
+}
View
72 Droplet/src/com/stefanbrenner/droplet/model/internal/Flash.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.model.internal;
+
+import java.awt.Color;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.stefanbrenner.droplet.model.IFlash;
+import com.stefanbrenner.droplet.model.IFlashAction;
+
+public class Flash extends AbstractModelObject implements IFlash {
+
+ private static final long serialVersionUID = 1L;
+
+ private String name;
+
+ private String description;
+
+ private Color color;
+
+ private List<IFlashAction> actions = new ArrayList<IFlashAction>();
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public void setName(String name) {
+ firePropertyChange(PROPERTY_NAME, this.name, this.name = name);
+ }
+
+ @Override
+ public String getDescription() {
+ return description;
+ }
+
+ @Override
+ public void setDescription(String description) {
+ firePropertyChange(PROPERTY_DESCRIPTION, this.description,
+ this.description = description);
+ }
+
+ @Override
+ public Color getColor() {
+ return color;
+ }
+
+ @Override
+ public void setColor(Color color) {
+ firePropertyChange(PROPERTY_COLOR, this.color, this.color = color);
+ }
+
+}
View
29 Droplet/src/com/stefanbrenner/droplet/model/internal/FlashAction.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.model.internal;
+
+import com.stefanbrenner.droplet.model.IFlashAction;
+
+public class FlashAction extends AbstractOffsetModelObject implements
+ IFlashAction {
+
+ private static final long serialVersionUID = 1L;
+
+}
View
80 Droplet/src/com/stefanbrenner/droplet/model/internal/Valve.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.model.internal;
+
+import java.awt.Color;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.stefanbrenner.droplet.model.IValve;
+import com.stefanbrenner.droplet.model.IValveAction;
+
+public class Valve extends AbstractModelObject implements IValve {
+
+ private static final long serialVersionUID = 1L;
+
+ private String name;
+
+ private String description;
+
+ private Color color;
+
+ private List<IValveAction> actions = new ArrayList<IValveAction>();
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public void setName(String name) {
+ firePropertyChange(PROPERTY_NAME, this.name, this.name = name);
+ }
+
+ @Override
+ public String getDescription() {
+ return description;
+ }
+
+ @Override
+ public void setDescription(String description) {
+ firePropertyChange(PROPERTY_DESCRIPTION, this.description,
+ this.description = description);
+ }
+
+ @Override
+ public Color getColor() {
+ return color;
+ }
+
+ @Override
+ public void setColor(Color color) {
+ firePropertyChange(PROPERTY_COLOR, this.color, this.color = color);
+ }
+
+ public List<IValveAction> getActions() {
+ return actions;
+ }
+
+ public void setActions(List<IValveAction> actions) {
+ this.actions = actions;
+ }
+
+}
View
42 Droplet/src/com/stefanbrenner/droplet/model/internal/ValveAction.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.model.internal;
+
+import com.stefanbrenner.droplet.model.IValveAction;
+
+public class ValveAction extends AbstractOffsetModelObject implements
+ IValveAction {
+
+ private static final long serialVersionUID = 1L;
+
+ private Integer duration;
+
+ @Override
+ public Integer getDuration() {
+ return duration;
+ }
+
+ @Override
+ public void setDuration(Integer duration) {
+ firePropertyChange(PROPERTY_DURATION, this.duration,
+ this.duration = duration);
+ }
+
+}
View
153 Droplet/src/com/stefanbrenner/droplet/ui/CommunicationPanel.java
@@ -0,0 +1,153 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.ui;
+
+import gnu.io.CommPort;
+import gnu.io.CommPortIdentifier;
+import gnu.io.PortInUseException;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.FlowLayout;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+
+import javax.swing.BorderFactory;
+import javax.swing.DefaultListCellRenderer;
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.ListCellRenderer;
+
+public class CommunicationPanel extends JPanel {
+
+ private static final long serialVersionUID = 1L;
+
+ private final JComboBox cmbPort;
+ private final JLabel lblStatus;
+
+ /**
+ * Create the panel.
+ */
+ public CommunicationPanel() {
+
+ setLayout(new FlowLayout(FlowLayout.LEFT, 10, 0));
+ setBorder(BorderFactory.createTitledBorder("Communication"));
+
+ // port selection combo box
+ cmbPort = new JComboBox(getPorts());
+ cmbPort.setRenderer(new ListCellRenderer() {
+
+ protected DefaultListCellRenderer defaultRenderer = new DefaultListCellRenderer();
+
+ @Override
+ public Component getListCellRendererComponent(JList list,
+ Object value, int index, boolean isSelected,
+ boolean cellHasFocus) {
+
+ JLabel lbItem = (JLabel) defaultRenderer
+ .getListCellRendererComponent(list, value, index,
+ isSelected, cellHasFocus);
+
+ if (value instanceof CommPortIdentifier) {
+ lbItem.setText(((CommPortIdentifier) value).getName());
+ }
+
+ return lbItem;
+ }
+ });
+ cmbPort.addItemListener(new ItemListener() {
+ @Override
+ public void itemStateChanged(ItemEvent event) {
+ updateStatus();
+ }
+ });
+ add(cmbPort);
+
+ // status label
+ add(new JLabel("Status:"));
+ lblStatus = new JLabel("Offline");
+ lblStatus.setForeground(Color.RED);
+ add(lblStatus);
+
+ // start status thread
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ while (!Thread.interrupted()) {
+ updateStatus();
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }).start();
+
+ }
+
+ private void updateStatus() {
+ if (isOnline()) {
+ lblStatus.setText("Online");
+ lblStatus.setForeground(Color.GREEN);
+ } else {
+ lblStatus.setText("Offline");
+ lblStatus.setForeground(Color.RED);
+ }
+ }
+
+ public boolean isOnline() {
+ Object selectedItem = cmbPort.getSelectedItem();
+ if (selectedItem instanceof CommPortIdentifier) {
+ CommPortIdentifier portId = (CommPortIdentifier) selectedItem;
+ CommPort port = null;
+ try {
+ port = portId.open(this.getClass().getName(), 1000);
+ return true;
+ } catch (PortInUseException e) {
+ } finally {
+ if (port != null) {
+ port.close();
+ }
+ }
+ }
+ return false;
+ }
+
+ private CommPortIdentifier[] getPorts() {
+ List<CommPortIdentifier> ports = new ArrayList<CommPortIdentifier>();
+
+ Enumeration<?> portEnum = CommPortIdentifier.getPortIdentifiers();
+ // iterate through, looking for the port
+ while (portEnum.hasMoreElements()) {
+ CommPortIdentifier currPortId = (CommPortIdentifier) portEnum
+ .nextElement();
+ ports.add(currPortId);
+ }
+
+ return ports.toArray(new CommPortIdentifier[] {});
+ }
+
+}
View
41 Droplet/src/com/stefanbrenner/droplet/ui/ConfigurationPanel.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.ui;
+
+import java.awt.FlowLayout;
+
+import javax.swing.BorderFactory;
+import javax.swing.JPanel;
+
+public class ConfigurationPanel extends JPanel {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Create the panel.
+ */
+ public ConfigurationPanel() {
+
+ setLayout(new FlowLayout(FlowLayout.LEFT, 10, 0));
+ setBorder(BorderFactory.createTitledBorder("Configuration"));
+
+ }
+
+}
View
88 Droplet/src/com/stefanbrenner/droplet/ui/Droplet.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.ui;
+
+import java.awt.BorderLayout;
+import java.awt.EventQueue;
+
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.border.EmptyBorder;
+
+public class Droplet extends JFrame {
+
+ private static final long serialVersionUID = 1L;
+
+ private JPanel contentPane;
+
+ /**
+ * Launch the application.
+ */
+ public static void main(String[] args) {
+ EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ try {
+ Droplet frame = new Droplet();
+ frame.setVisible(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ }
+
+ /**
+ * Create the frame.
+ */
+ public Droplet() {
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ setBounds(100, 100, 450, 300);
+
+ contentPane = new JPanel();
+ contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
+ contentPane.setLayout(new BorderLayout(0, 0));
+ setContentPane(contentPane);
+
+ JPanel commPanel = new CommunicationPanel();
+ contentPane.add(commPanel, BorderLayout.NORTH);
+
+ {
+ JPanel mainPanel = new JPanel();
+ mainPanel.setLayout(new BorderLayout(0, 0));
+ contentPane.add(mainPanel, BorderLayout.CENTER);
+
+ JPanel configPanel = new ConfigurationPanel();
+ mainPanel.add(configPanel, BorderLayout.CENTER);
+
+ JPanel processingPanel = new ProcessingPanel();
+ mainPanel.add(processingPanel, BorderLayout.SOUTH);
+ }
+
+ JPanel toolbarPanel = new DropletToolbar();
+ contentPane.add(toolbarPanel, BorderLayout.SOUTH);
+
+ // make frame as small as possible
+ pack();
+ // set minimum size to packed size
+ setMinimumSize(getSize());
+
+ }
+
+}
View
48 Droplet/src/com/stefanbrenner/droplet/ui/DropletToolbar.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.ui;
+
+import java.awt.FlowLayout;
+
+import javax.swing.JButton;
+import javax.swing.JPanel;
+
+public class DropletToolbar extends JPanel {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Create the panel.
+ */
+ public DropletToolbar() {
+
+ setLayout(new FlowLayout(FlowLayout.RIGHT));
+
+ // send button
+ JButton btnSend = new JButton("Send");
+ add(btnSend);
+
+ // start button
+ JButton btnStart = new JButton("Start");
+ add(btnStart);
+
+ }
+
+}
View
117 Droplet/src/com/stefanbrenner/droplet/ui/ProcessingPanel.java
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.ui;
+
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+import javax.swing.JTextField;
+
+public class ProcessingPanel extends JPanel {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Create the panel.
+ */
+ public ProcessingPanel() {
+
+ setLayout(new GridBagLayout());
+ setBorder(BorderFactory.createTitledBorder("Processing"));
+
+ GridBagConstraints gbc = new GridBagConstraints();
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+
+ // checkbox
+ JCheckBox cbEnable = new JCheckBox("Enable Processing");
+ gbc.gridx = 0;
+ gbc.gridy = 0;
+ gbc.anchor = GridBagConstraints.WEST;
+ // gbc.gridwidth = GridBagConstraints.RELATIVE;
+ add(cbEnable, gbc);
+
+ // watch folder label
+ gbc.gridx = 0;
+ gbc.gridy = 1;
+ gbc.gridwidth = 1;
+ add(new JLabel("Watch Folder"), gbc);
+
+ // watch folder textbox
+ gbc.gridx = 1;
+ gbc.gridy = 1;
+ gbc.anchor = GridBagConstraints.EAST;
+ JTextField txtWatchFolder = new JTextField(
+ "/Users/Stefan/Pictures/AutomatedImport");
+ txtWatchFolder.setEnabled(false);
+ add(txtWatchFolder, gbc);
+
+ // watch folder button
+ gbc.gridx = 2;
+ gbc.gridy = 1;
+ JButton btnWatchFolder = new JButton("Browse...");
+ add(btnWatchFolder, gbc);
+
+ // tag label
+ gbc.gridx = 0;
+ gbc.gridy = 2;
+ gbc.anchor = GridBagConstraints.NORTHWEST;
+ add(new JLabel("Tags"), gbc);
+
+ // tag textbox
+ gbc.gridx = 1;
+ gbc.gridy = 2;
+ JTextArea txtTag = new JTextArea(4, 20);
+ txtTag.setMargin(new Insets(5, 5, 5, 5));
+ txtTag.setLineWrap(true);
+ JScrollPane tagScrollPane = new JScrollPane(txtTag);
+ add(tagScrollPane, gbc);
+
+ // comments label
+ gbc.gridx = 3;
+ gbc.gridy = 2;
+ add(new JLabel("Comments"), gbc);
+
+ // comments textbox
+ gbc.gridx = 4;
+ gbc.gridy = 2;
+ JTextArea txtComments = new JTextArea(4, 20);
+ txtComments.setMargin(new Insets(5, 5, 5, 5));
+ txtComments.setLineWrap(true);
+ JScrollPane commentsScrollPane = new JScrollPane(txtComments);
+ add(commentsScrollPane, gbc);
+
+ // checkbox
+ JCheckBox cbWriteMetaData = new JCheckBox("Write Metadata to EXIF");
+ gbc.gridx = 4;
+ gbc.gridy = 1;
+ gbc.anchor = GridBagConstraints.WEST;
+ add(cbWriteMetaData, gbc);
+
+ }
+
+}
View
57 Droplet/src/com/stefanbrenner/droplet/ui/ValveActionPanel.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.ui;
+
+import java.awt.BorderLayout;
+
+import javax.swing.JPanel;
+import javax.swing.JSpinner;
+import javax.swing.SpinnerNumberModel;
+
+public class ValveActionPanel extends JPanel {
+
+ private static final long serialVersionUID = 1L;
+
+ // UI components
+ private final JSpinner spOffset;
+ private final JSpinner spDuration;
+
+ private SpinnerNumberModel spOffsetModel;
+ private SpinnerNumberModel spDurationModel;
+
+ /**
+ * Create the panel.
+ */
+ public ValveActionPanel() {
+ setLayout(new BorderLayout(0, 0));
+
+ spOffset = new JSpinner();
+ spOffsetModel = new SpinnerNumberModel(0, 0, 10000, 1);
+ spOffset.setModel(spOffsetModel);
+ add(spOffset, BorderLayout.WEST);
+
+ spDuration = new JSpinner();
+ spDurationModel = new SpinnerNumberModel(0, 0, 10000, 1);
+ spDuration.setModel(spDurationModel);
+ add(spDuration, BorderLayout.EAST);
+
+ }
+
+}
View
76 Droplet/src/com/stefanbrenner/droplet/ui/ValvePanel.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.ui;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.SwingConstants;
+
+import com.jgoodies.binding.adapter.BasicComponentFactory;
+import com.jgoodies.binding.beans.BeanAdapter;
+import com.stefanbrenner.droplet.model.IValve;
+import com.stefanbrenner.droplet.model.internal.Valve;
+
+// TODO rename to ActionPanel?
+public class ValvePanel extends JPanel {
+
+ private static final long serialVersionUID = 1L;
+
+ // UI components
+ private final JLabel lblTitle;
+
+ private List<ValveActionPanel> valveActions = new ArrayList<ValveActionPanel>();
+
+ /**
+ * Create the panel.
+ */
+ public ValvePanel() {
+ setLayout(new BorderLayout(10, 0));
+
+ Valve valve1 = new Valve();
+ valve1.setName("MV 1");
+ BeanAdapter<IValve> adapter = new BeanAdapter<IValve>(valve1);
+ JLabel createLabel = BasicComponentFactory.createLabel(adapter
+ .getValueModel("name"));
+ add(createLabel, BorderLayout.CENTER);
+
+ // title label
+ lblTitle = new JLabel();
+ lblTitle.setHorizontalAlignment(SwingConstants.RIGHT);
+ lblTitle.setPreferredSize(new Dimension(100, 25));
+ add(lblTitle, BorderLayout.NORTH);
+
+ // add button
+ JButton btnAdd = new JButton("Add");
+ add(btnAdd, BorderLayout.SOUTH);
+
+ }
+
+ public void setTitle(String title) {
+ lblTitle.setText(title);
+ }
+
+}
View
28 Droplet/src/com/stefanbrenner/droplet/ui/dvf.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Project: Droplet - Toolkit for Liquid Art Photographers
+ * Copyright (C) 2012 Stefan Brenner
+ *
+ * This file is part of Droplet.
+ *
+ * Droplet is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Droplet is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Droplet. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
+package com.stefanbrenner.droplet.ui;
+
+/**
+ * @author stefan
+ *
+ */
+public class dvf {
+
+}
Please sign in to comment.
Something went wrong with that request. Please try again.