Java, FX data validation with complex interdependency
===

Having trouble implementing validation for complex interdependent data structures. Using java se & fx(No EE) to develop a product ordering application. On average a product contains 15+ fields. These fields are progressively filtered by options previous and most fields affect at least 3 other fields at a time. User input is collected from ComboBox.
The Goal:
   Validation on all fields
The issues:
   If I force selection one at time and apply rules in order I have issues with resetting, or progressing backwards as I have many variables to track(Combo states, base values in the list, valid values, gui serialization or object serialization and gui generation from object).
   If I allow selections on the combos at any time in any order then I have no idea how to validate them with all of the connections between fields.

    class Product{
      StringProperty prop1;
      StringProperty prop2;
      .........
    }

    class Controller{
       GridPane pane;
       Product _product;
       init(){};
       ObservableList readXMLBuildOptionsList(){
         //build options from xml
         return optionlist;
       }
       buildGui(){
          pane = new GridPane();
          Rules rule = new Rules();
          //For each optionList in master list
          //Create combo that matches up to properties of object
          ComboBox box = new ComboBox(observableList);
          box.addChangeListener(new ChangeListener(){

                @Override
                public void changed(ObservableValue arg0, Object arg1, Object arg2) {
                    if (arg1 != arg2) {
                        rule.validate(arg0, arg1, arg2);
                    }
                }
            });
       }
    }

    class Rules{
       void validate(ObservableValue arg0, Object arg1, Object arg2){
          //some validation across all fields?
          //Change invalid options in other fields to red colored text
        }
    }

That is the general layout of code if anyone has suggestions, or code examples of how to achieve something usable. Feeling pretty lost atm.