"To do's sorter", Java swing example using topological sort minimize
Overview

Maybe this small Application should rather be christened "To do helper", or "To do sorter"! In fact, it is perfectly adequate for this purpose. Just start to write down line by line all what you must do. In a second step you go through your list defining which items must be done before an other one. You do this by copy/paste an item onto the same line as the related one. Either in front or after it. Separate the items with one of the separators either " .. " or " < ". See picture below. Press sort if you are done. You'll get a list of proposed order telling you what to do first. If you don't like the order, complete your entries by adding further additional conditions. Items may be repeated. As long you don't define a circular dependency, the new conditions will be considered in the order of your to do list! Of course, circular dependencies are announced!

Beside, with regard to circular dependencies, just use this app to detect them!

Technical Background

In graph theory, a topological sort or topological ordering of a directed acyclic graph (DAG) is a linear ordering of its nodes in which each node comes before all nodes to which it has outbound edges. Every DAG has one or more topological sorts.

Webstart

For your convenience try the Webstart Example.
(security limited operation, by Webstart definition i.e. no file system access, etc.!)

TopsSort example

Launch What to do first? Wizard Application


Local launch

Launching local allows access to the file system and enables the file open, save and print functions. Try it!

Download jar for local execution

Usage to launch the application on the local computer:

java -jar WhatFirst-20110131.jar [language code] [encoding of in/out files]

Example detail:

Normal usage: 
java -jar WhatFirst-20110131.jar uses system default language and file encoding.
Advanced users:or
java -jar WhatFirst-20110131.jar  fr  UTF-8 Other language display, (fr in the example given, when your Windows is english) and reading and writing files using UTF-8 characterset instead of Operating System default.

Actually implemented languages are: en, de, fr and es. Id est: English, German, French and Spanish.

Hint

Create a new link to launch the java application with a simple click, see example:

Properties of link to launch with a click