Commit graph

962 commits

Author SHA1 Message Date
Chris Beams
8db981c138
Add Bitsquare.iss file as produced by javapackager
This file was produced by adding a `-v` flag following the `-deploy`
flag in `package/windows.bat`. The creation of the file is reported by
javapackager as follows:

    Config files are saved to
    C:\Users\CBEAMS~1.WIN\AppData\Local\Temp\fxbundler5661616451276716144\windows.
    Use them to customize package.

Subsequent commits will customize this file, primarily for the purpose
of avoid the dreaded 'missing dll' errors mentioned originally in
d16c274 and detailed at https://bitbucket.org/shemnon/javafx-gradle/issue/43.
2014-11-28 11:32:20 +01:00
Manfred Karrer
c8a6c8b330 Cleanup 2014-11-27 12:54:17 +01:00
Chris Beams
7dbe3e33b1
Upgrade to the newly-released RxJava 1.0.0
See https://github.com/ReactiveX/RxJava/releases/tag/v1.0.0
2014-11-27 11:09:37 +01:00
Chris Beams
75babebc8b
Return void from TradeView#loadView
The return value of #loadView is never used. Return void to more clearly
reflect this fact.
2014-11-27 10:36:08 +01:00
Chris Beams
1ce151821a Merge pull request #296 from bitsquare/cbeams
Add support for $HOME/.bitsquare/bitsquare.properties
2014-11-27 10:26:18 +01:00
Chris Beams
3c50a3c4f2
Add support for $HOME/.bitsquare/bitsquare.properties
This change allows users to place a bitsquare.properties file within
a `.bitsquare` directory under their home directory. This makes it
possible to specify property values (such as
node.useManualPortForwarding=true) that will survive cleaning the
application data dir (e.g. with `--clean=true` flag as introduced
in #291).

The precedence of this new "homeDirProperties" property source is lower
than the "appDirProperties" property source.

This means that if a user has a `bitsquare.properties` file both in his
home directory and in his application data directory, both files will be
processed, but for any properties that exist in both files, the property
specified in the application data directory file will take precedence.
This arrangement allows users to customize settings on an app-by-app
basis, which is especially useful in local testing scenarios where more
than one Bitsquare instance is running.
2014-11-27 10:19:21 +01:00
Chris Beams
aa3fc929cb
Accept --clean=true as a shortcut for --app.data.dir.clean=true
See #291
2014-11-27 10:04:48 +01:00
Chris Beams
582761e663
Clarify naming and role of clean flag
Prior to this change, the "clean flag" was named `user.data.clean.dir`,
but in fact it cleaned the *app* data dir, not the *user* data dir.

This is the difference betwen deleting

    ~/Library/Application Support (the "user data dir")

vs.

    ~/Library/Application Support/Bitsquare (the "app data dir")

The name of this flag has been updated to `--app.data.dir.clean` to
reflect the fact that it cleans the latter vs. the former.

The processing of this flag has also been updated. It's default value
(false) is now assigned during the creation of the default properties
source in BitsquareEnvironment, and instead of reading and handling the
flag directly in the BitsquareEnvironment constructor, we now handle
cleaning in BitsquareApp#initAppDir, where logic for handling the
creation of the directory already exists.

See #291
2014-11-27 09:39:27 +01:00
Manfred Karrer
1ecece4f0e Cleanup 2014-11-27 02:46:38 +01:00
Manfred Karrer
ac95325e5c Fix Number of open trades not updating #286 2014-11-27 02:42:47 +01:00
Manfred Karrer
635f839f78 Fix problem with double runlater at p2p state change 2014-11-27 01:37:56 +01:00
Manfred Karrer
970cd776f3 Add clean param to clean data directory #291 2014-11-27 00:54:21 +01:00
Manfred Karrer
ea98a15406 Fix missing CachingViewLoader 2014-11-27 00:37:04 +01:00
Manfred Karrer
3f5d82f8b0 Handle case if content item is used in settings (wizard not set) 2014-11-27 00:36:49 +01:00
Manfred Karrer
c4295bc55e Remove confirmation spinner where confirmation is not needed #290 2014-11-27 00:35:58 +01:00
Manfred Karrer
87d81f02bf Only load on demand 2014-11-26 23:01:13 +01:00
Manfred Karrer
75a41ee7bc Fix problem caching of OrderBook, but not Buy/Sell views 2014-11-26 22:51:58 +01:00
Manfred Karrer
0d05fcb1f5 Add popup at create sell offer (#293) 2014-11-26 21:55:11 +01:00
Manfred Karrer
5f8f7446e3 Remove ChildView 2014-11-26 21:35:47 +01:00
Manfred Karrer
3b75cc2fd0 Add null checks 2014-11-26 21:10:01 +01:00
Manfred Karrer
33682694ed Change timeout 2014-11-26 21:09:07 +01:00
Manfred Karrer
d562384f73 Fix null check 2014-11-26 21:00:44 +01:00
Chris Beams
58335f036e
Merge branch 'cbeams'
Overview of major changes:

 - Introduce top-level `viewfx` package for general-purpose MVVM-style
   infrastructure classes. Note that this package naming will likely
   change, especially if and when we extract it to a physically-separate
   library.

 - Introduce View and Model class hierarchies that capture the various
   lifecycle and model management concerns throughout the existing
   Bitsquare application (see `viewfx.view` and `viewfx.model` packages)

 - Introduce @FxmlView and FxmlViewLoader to support declarative,
   convention-over-configuration support for FXML-based views.
   Eventually, this approach will allow for seamless mixing of FXML- and
   non-FXML based view implementations within the same application.

 - Introduce a type-safe approach to intra-view navigation: eliminate
   the Navigation.Item enum in favor of navigating directly from one
   view to another using *View class literals. This change is closely
   tied to the @FxmlView approach described above.

Many additional smaller changes are included as well; see individual
commits for details.

* cbeams: (75 commits)
  Rename viewfx.view.support.guice.{Guice=>Injector}ViewFactory
  Use instanceof checks on views instead of class equality
  Add CachingViewLoaderTests
  Revert "Remove System#exit call from BitsquareApp#stop"
  Change signature of ViewLoader#load to accept Class
  Complete implementation and testing of @FxmlView support
  Remove System#exit call from BitsquareApp#stop
  fix checkArgument
  Use irc instead of fiat classes
  Remove hardcoded path from ViewLoaderTests
  Fix conditional logic in AccountView#activate
  Polish AccountSettingsView
  Introduce @FxmlView, replace Navigation.Item
  Begin refactoring Navigation
  Rename enum gui.{Navigation#Item => FxmlView}
  Introduce viewfx.view.support.CachingViewLoader
  Extract ViewLoader interface and introduce FxmlViewLoader
  Fix broken tests and app exceptions due to ViewLoader changes
  Bind ViewFactory interface to GuiceViewFactory impl
  Move i.b.gui.ViewLoader.java => viewfx.view.support.ViewLoader
  ...
2014-11-26 20:02:18 +01:00
Chris Beams
39ee637eda
Rename viewfx.view.support.guice.{Guice=>Injector}ViewFactory 2014-11-25 22:12:36 +01:00
Chris Beams
e887be742d
Use instanceof checks on views instead of class equality 2014-11-25 22:12:35 +01:00
Chris Beams
979fc8aca8
Add CachingViewLoaderTests 2014-11-25 22:12:35 +01:00
Chris Beams
98505246b1
Revert "Remove System#exit call from BitsquareApp#stop"
This reverts commit 78d3da0c4e17ce356905c3b745d9773eb458988e.

Because while eliminating the call to System#exit does mean that
JavaFX's LauncherImpl can properly report errors and stack traces, it
also means that Bitsquare never shuts down (probably due to non-daemon
threads). When System#exit is removed (or replaced with Platform#exit),
closing the Bitsquare window (or clicking Exit from the system tray menu)
results in the application no longer being able to function at the UI
level (because the JavaFX toolkit has essentially been shut down), but
the process does not exit either.

So in the meantime, this change is being reverted, and we just have to
deal with not getting stack traces at the command line when uncaught
exceptions bubble up through the #start method (specifically, exceptions
that occur before the UncaughtExceptionHandler has had a chance to be
set).

A solution to this could be to provide a custom subclass of JavaFX's own
Application class that implements a template #start / #doStart methods
trying and catching anything that is raised from #doStart and printing
the stack trace on its own.
2014-11-25 22:12:34 +01:00
Chris Beams
9041ff3d82
Change signature of ViewLoader#load to accept Class 2014-11-25 22:12:34 +01:00
Chris Beams
4ebc0c0e41
Complete implementation and testing of @FxmlView support 2014-11-25 22:12:33 +01:00
Chris Beams
fe667bc1b2
Remove System#exit call from BitsquareApp#stop
Calling System#exit short-circuits normal error reporting, meaning that
when an exception is called within the scope of executing the
Application's #start method, the message

    Exception in Application start method

is printed to the console, but without a stack trace. Removing the
System#exit call allows JavaFX's LauncherImpl to continue processing the
exception, ultimately printing out the stack trace as expected.
2014-11-25 22:12:33 +01:00
Manfred Karrer
380e8baf58
fix checkArgument 2014-11-25 22:12:32 +01:00
Manfred Karrer
ed83cdbe49
Use irc instead of fiat classes 2014-11-25 22:12:32 +01:00
Chris Beams
63b7e254d7
Remove hardcoded path from ViewLoaderTests 2014-11-25 22:12:32 +01:00
Chris Beams
50046b6adc
Fix conditional logic in AccountView#activate 2014-11-25 22:12:31 +01:00
Chris Beams
fac64807f6
Polish AccountSettingsView 2014-11-25 22:12:31 +01:00
Chris Beams
70d9577e32
Introduce @FxmlView, replace Navigation.Item 2014-11-25 22:12:30 +01:00
Chris Beams
5a5bfd0826
Begin refactoring Navigation 2014-11-25 22:12:30 +01:00
Chris Beams
6de4e63973
Rename enum gui.{Navigation#Item => FxmlView} 2014-11-25 22:12:30 +01:00
Chris Beams
444948f3ca
Introduce viewfx.view.support.CachingViewLoader
... and move view.fxml package to view.support.fxml
2014-11-25 22:12:29 +01:00
Chris Beams
a2c98d9ea3
Extract ViewLoader interface and introduce FxmlViewLoader 2014-11-25 22:12:29 +01:00
Chris Beams
2705e80ef1
Fix broken tests and app exceptions due to ViewLoader changes 2014-11-25 22:12:28 +01:00
Chris Beams
87fb4390c4
Bind ViewFactory interface to GuiceViewFactory impl
This change fixes a test that was breaking in the previous commit.
2014-11-25 22:12:28 +01:00
Chris Beams
e8afdf5e22
Move i.b.gui.ViewLoader.java => viewfx.view.support.ViewLoader 2014-11-25 22:12:27 +01:00
Chris Beams
fcaded1c33
Use ViewFactory interface in favor of GuiceViewFactory impl 2014-11-25 22:12:27 +01:00
Chris Beams
5a75a1aa10
Rename gui.GuiceControllerFactory => viewfx...GuiceViewFactory 2014-11-25 22:12:27 +01:00
Chris Beams
318bfc5fb0
Refactor ViewLoader 2014-11-25 22:12:26 +01:00
Chris Beams
d120dcad06
Rename {mightypork...DesktopApi=>i.b.util.DesktopUtil} 2014-11-25 22:11:57 +01:00
Chris Beams
6495ccd5db
Introduce viewfx subpackages 2014-11-25 22:09:49 +01:00
Chris Beams
b890f37216
Introduce top-level viewfx package
Move general-purpose ui infrastructure to this new package, leaving
what's in io.bitsquare.gui truly specific to Bitsquare.
2014-11-25 22:08:50 +01:00
Chris Beams
1390ce21a8
Reduce visibility of view classes to package-private 2014-11-25 22:08:31 +01:00