Please disable your adblock and script blockers to view this page

Search this blog

Tuesday 4 June 2013

Fun - Develop Tic Tac Toe game in Oracle ADF/Java

Tic Tac Toe or Naughty Cross is a paper-pencil game for two players and simple in  concept.
I have developed a application on ADF, using JSF page and unbounded adfc-config.xml .
There is nothing to explain, see the sample application at bottom of this post
  • Tic Tac Toe game has 9 square to enter values 0 or X, so for that i have used 9 buttons and images of 0 and X



  • And create a managed bean for all nine buttons, to execute proper conditions for each move
     
  • See managed bean code and conditions for player's move(only Java Code is needed to do this)



  • package ticTacToeADF.view;
    
    import javax.faces.event.ActionEvent;
    
    import oracle.adf.view.rich.component.rich.nav.RichCommandButton;
    
    public class TictactoeBean {
    
        public TictactoeBean() {
        }
        private static String one = "     ";
        private static String two = "     ";
        private static String three = "     ";
        private static String four = "     ";
        private static String five = "     ";
        private static String six = "     ";
        private static String seven = "     ";
        private static String eight = "     ";
        private static String nine = "     ";
        private static boolean check = false;
        private String Result = "";
        private static boolean oneDis = false;
        private static boolean twoDis = false;
        private static boolean threeDis = false;
        private static boolean fourDis = false;
        private static boolean fiveDis = false;
        private static boolean sixDis = false;
        private static boolean sevenDis = false;
        private static boolean eightDis = false;
        private static boolean nineDis = false;
    
    
        public void Button1(ActionEvent actionEvent) {
            if (check == false) {
                this.setOne("X");
    
                check = true;
                this.setOneDis(true);
                System.out.println("Check is--------->" + check);
                if (one.equalsIgnoreCase(two) && two.equalsIgnoreCase(three)) {
                    this.setResult(one + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (one.equalsIgnoreCase(five) && five.equalsIgnoreCase(nine)) {
                    this.setResult(one + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (one.equalsIgnoreCase(four) && four.equalsIgnoreCase(seven)) {
                    this.setResult(one + " wins");
                    finishgame();
                    System.out.println("One wins");
                }
    
    
            } else {
                this.setOne("0");
    
                check = false;
                this.setOneDis(true);
                System.out.println("Check is--------->" + check);
                if (one.equalsIgnoreCase(two) && two.equalsIgnoreCase(three)) {
                    this.setResult(one + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (one.equalsIgnoreCase(five) && five.equalsIgnoreCase(nine)) {
                    this.setResult(one + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (one.equalsIgnoreCase(four) && four.equalsIgnoreCase(seven)) {
                    this.setResult(one + " wins");
                    finishgame();
                    System.out.println("One wins");
                }
    
            }
    
        }
    
        public void Button2(ActionEvent actionEvent) {
            if (check == false) {
                this.setTwo("X");
                check = true;
                this.setTwoDis(true);
                System.out.println("Check is--------->" + check);
                if (two.equalsIgnoreCase(five) && five.equalsIgnoreCase(eight)) {
                    this.setResult(two + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (two.equalsIgnoreCase(one) && one.equalsIgnoreCase(three)) {
                    this.setResult(two + " wins");
                    finishgame();
                    System.out.println("One wins");
                }
            } else {
                this.setTwo("0");
                check = false;
                this.setTwoDis(true);
                System.out.println("Check is--------->" + check);
                if (two.equalsIgnoreCase(five) && five.equalsIgnoreCase(eight)) {
                    this.setResult(two + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (two.equalsIgnoreCase(one) && one.equalsIgnoreCase(three)) {
                    this.setResult(two + " wins");
                    finishgame();
                    System.out.println("One wins");
                }
            }
        }
    
        public void Button3(ActionEvent actionEvent) {
            if (check == false) {
                this.setThree("X");
                check = true;
                this.setThreeDis(true);
                System.out.println("Check is--------->" + check);
    
                if (three.equalsIgnoreCase(six) && six.equalsIgnoreCase(nine)) {
                    this.setResult(three + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (three.equalsIgnoreCase(five) && five.equalsIgnoreCase(seven)) {
                    this.setResult(three + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (three.equalsIgnoreCase(one) && one.equalsIgnoreCase(two)) {
                    this.setResult(three + " wins");
                    finishgame();
                    System.out.println("One wins");
                }
    
            } else {
                this.setThree("0");
                check = false;
                this.setThreeDis(true);
                System.out.println("Check is--------->" + check);
    
                if (three.equalsIgnoreCase(six) && six.equalsIgnoreCase(nine)) {
                    this.setResult(three + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (three.equalsIgnoreCase(five) && five.equalsIgnoreCase(seven)) {
                    this.setResult(three + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (three.equalsIgnoreCase(one) && one.equalsIgnoreCase(two)) {
                    this.setResult(three + " wins");
                    finishgame();
                    System.out.println("One wins");
                }
            }
        }
    
        public void Button4(ActionEvent actionEvent) {
            if (check == false) {
                this.setFour("X");
                check = true;
                this.setFourDis(true);
                System.out.println("Check is--------->" + check);
    
                if (four.equalsIgnoreCase(one) && one.equalsIgnoreCase(seven)) {
                    this.setResult(four + " wins");
                    finishgame();
                    System.out.println("four wins");
                } else if (four.equalsIgnoreCase(five) && five.equalsIgnoreCase(six)) {
                    this.setResult(four + " wins");
                    finishgame();
                    System.out.println("One wins");
                }
    
            } else {
                this.setFour("0");
                check = false;
                this.setFourDis(true);
                System.out.println("Check is--------->" + check);
    
                if (four.equalsIgnoreCase(one) && one.equalsIgnoreCase(seven)) {
                    this.setResult(four + " wins");
                    finishgame();
                    System.out.println("four wins");
                } else if (four.equalsIgnoreCase(five) && five.equalsIgnoreCase(six)) {
                    this.setResult(four + " wins");
                    finishgame();
                    System.out.println("One wins");
                }
            }
        }
    
        public void Button5(ActionEvent actionEvent) {
            if (check == false) {
                this.setFive("X");
                check = true;
                this.setFiveDis(true);
                System.out.println("Check is--------->" + check);
    
                if (one.equalsIgnoreCase(five) && five.equalsIgnoreCase(nine)) {
                    this.setResult(five + " wins");
                    finishgame();
                    System.out.println("One wins");
    
                } else if (two.equalsIgnoreCase(five) && five.equalsIgnoreCase(eight)) {
                    this.setResult(five + " wins");
                    finishgame();
                    System.out.println("One wins");
                }
    
                else if (four.equalsIgnoreCase(five) && five.equalsIgnoreCase(six)) {
                    this.setResult(five + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (five.equalsIgnoreCase(three) && three.equalsIgnoreCase(seven)) {
                    this.setResult(five + " wins");
                    finishgame();
                    System.out.println("One wins");
                }
            } else {
                this.setFive("0");
                check = false;
                this.setFiveDis(true);
                System.out.println("Check is--------->" + check);
    
                if (one.equalsIgnoreCase(five) && five.equalsIgnoreCase(nine)) {
                    this.setResult(five + " wins");
                    finishgame();
                    System.out.println("One wins");
    
                } else if (two.equalsIgnoreCase(five) && five.equalsIgnoreCase(eight)) {
                    this.setResult(five + " wins");
                    finishgame();
                    System.out.println("One wins");
                }
    
                else if (four.equalsIgnoreCase(five) && five.equalsIgnoreCase(six)) {
                    this.setResult(five + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (five.equalsIgnoreCase(three) && three.equalsIgnoreCase(seven)) {
                    this.setResult(five + " wins");
                    finishgame();
                    System.out.println("One wins");
                }
    
            }
        }
    
        public void Button6(ActionEvent actionEvent) {
            if (check == false) {
                this.setSix("X");
                check = true;
                this.setSixDis(true);
                System.out.println("Check is--------->" + check);
    
                if (four.equalsIgnoreCase(five) && five.equalsIgnoreCase(six)) {
                    this.setResult(six + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (three.equalsIgnoreCase(six) && six.equalsIgnoreCase(nine)) {
                    this.setResult(six + " wins");
                    finishgame();
                    System.out.println("One wins");
                }
            } else {
                this.setSix("0");
                check = false;
                this.setSixDis(true);
                System.out.println("Check is--------->" + check);
    
                if (four.equalsIgnoreCase(five) && five.equalsIgnoreCase(six)) {
                    this.setResult(six + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (three.equalsIgnoreCase(six) && six.equalsIgnoreCase(nine)) {
                    this.setResult(six + " wins");
                    finishgame();
                    System.out.println("One wins");
                }
            }
        }
    
        public void Button7(ActionEvent actionEvent) {
            if (check == false) {
                this.setSeven("X");
                check = true;
                this.setSevenDis(true);
                System.out.println("Check is--------->" + check);
    
                if (four.equalsIgnoreCase(one) && one.equalsIgnoreCase(seven)) {
                    this.setResult(four + " wins");
                    finishgame();
                    System.out.println("four wins");
                } else if (five.equalsIgnoreCase(three) && three.equalsIgnoreCase(seven)) {
                    this.setResult(seven + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (seven.equalsIgnoreCase(eight) && eight.equalsIgnoreCase(nine)) {
                    this.setResult(seven + " wins");
                    finishgame();
                    System.out.println("One wins");
                }
            } else {
                this.setSeven("0");
                check = false;
                this.setSevenDis(true);
                System.out.println("Check is--------->" + check);
                if (four.equalsIgnoreCase(one) && one.equalsIgnoreCase(seven)) {
                    this.setResult(four + " wins");
                    finishgame();
                    System.out.println("four wins");
                } else if (five.equalsIgnoreCase(three) && three.equalsIgnoreCase(seven)) {
                    this.setResult(seven + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (seven.equalsIgnoreCase(eight) && eight.equalsIgnoreCase(nine)) {
                    this.setResult(seven + " wins");
                    finishgame();
                    System.out.println("One wins");
                }
            }
        }
    
        public void Button8(ActionEvent actionEvent) {
            if (check == false) {
                this.setEight("X");
                check = true;
                this.setEightDis(true);
                System.out.println("Check is--------->" + check);
                if (eight.equalsIgnoreCase(two) && two.equalsIgnoreCase(five)) {
                    this.setResult(eight + " wins");
                    finishgame();
                    System.out.println("four wins");
                } else if (eight.equalsIgnoreCase(seven) && seven.equalsIgnoreCase(nine)) {
                    this.setResult(eight + " wins");
                    finishgame();
                    System.out.println("One wins");
    
                }
            } else {
                this.setEight("0");
                check = false;
                this.setEightDis(true);
                System.out.println("Check is--------->" + check);
                if (eight.equalsIgnoreCase(two) && two.equalsIgnoreCase(five)) {
                    this.setResult(eight + " wins");
                    finishgame();
                    System.out.println("four wins");
                } else if (eight.equalsIgnoreCase(seven) && seven.equalsIgnoreCase(nine)) {
                    this.setResult(eight + " wins");
                    finishgame();
                    System.out.println("One wins");
    
                }
            }
        }
    
        public void Button9(ActionEvent actionEvent) {
            if (check == false) {
                this.setNine("X");
                check = true;
                this.setNineDis(true);
                System.out.println("Check is--------->" + check);
                if (nine.equalsIgnoreCase(one) && one.equalsIgnoreCase(five)) {
                    this.setResult(nine + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (three.equalsIgnoreCase(six) && six.equalsIgnoreCase(nine)) {
                    this.setResult(six + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (eight.equalsIgnoreCase(seven) && seven.equalsIgnoreCase(nine)) {
                    this.setResult(eight + " wins");
                    finishgame();
                    System.out.println("One wins");
    
                }
            } else {
                this.setNine("0");
                check = false;
                this.setNineDis(true);
                System.out.println("Check is--------->" + check);
    
                if (nine.equalsIgnoreCase(one) && one.equalsIgnoreCase(five)) {
                    this.setResult(nine + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (three.equalsIgnoreCase(six) && six.equalsIgnoreCase(nine)) {
                    this.setResult(six + " wins");
                    finishgame();
                    System.out.println("One wins");
                } else if (eight.equalsIgnoreCase(seven) && seven.equalsIgnoreCase(nine)) {
                    this.setResult(eight + " wins");
                    finishgame();
                    System.out.println("One wins");
    
                }
            }
        }
    
        public void setOne(String one) {
            this.one = one;
        }
    
        public String getOne() {
            return one;
        }
    
        public void setTwo(String two) {
            this.two = two;
        }
    
        public String getTwo() {
            return two;
        }
    
        public void setThree(String three) {
            this.three = three;
        }
    
        public String getThree() {
            return three;
        }
    
        public void setFour(String four) {
            this.four = four;
        }
    
        public String getFour() {
            return four;
        }
    
        public void setFive(String five) {
            this.five = five;
        }
    
        public String getFive() {
            return five;
        }
    
        public void setSix(String six) {
            this.six = six;
        }
    
        public String getSix() {
            return six;
        }
    
        public void setSeven(String seven) {
            this.seven = seven;
        }
    
        public String getSeven() {
            return seven;
        }
    
        public void setEight(String eight) {
            this.eight = eight;
        }
    
        public String getEight() {
            return eight;
        }
    
        public void setNine(String nine) {
            this.nine = nine;
        }
    
        public String getNine() {
            return nine;
        }
    
        public void setResult(String Result) {
            this.Result = Result;
        }
    
        public String getResult() {
            return Result;
        }
    
        public void ResetButton(ActionEvent actionEvent) {
            this.one = "     ";
            this.two = "     ";
            this.three = "     ";
            this.four = "     ";
            this.five = "     ";
            this.six = "     ";
            this.seven = "     ";
            this.eight = "     ";
            this.nine = "     ";
            this.check = false;
            this.oneDis = false;
            this.twoDis = false;
            this.threeDis = false;
            this.fourDis = false;
            this.fiveDis = false;
            this.sixDis = false;
            this.sevenDis = false;
            this.eightDis = false;
            this.nineDis = false;
    
        }
    
        public void finishgame() {
            this.oneDis = true;
            this.twoDis = true;
            this.threeDis = true;
            this.fourDis = true;
            this.fiveDis = true;
            this.sixDis = true;
            this.sevenDis = true;
            this.eightDis = true;
            this.nineDis = true;
        }
    
        public void setOneDis(boolean oneDis) {
            this.oneDis = oneDis;
        }
    
        public boolean isOneDis() {
            return oneDis;
        }
    
        public void setTwoDis(boolean twoDis) {
            this.twoDis = twoDis;
        }
    
        public boolean isTwoDis() {
            return twoDis;
        }
    
        public void setThreeDis(boolean threeDis) {
            this.threeDis = threeDis;
        }
    
        public boolean isThreeDis() {
            return threeDis;
        }
    
        public void setFourDis(boolean fourDis) {
            this.fourDis = fourDis;
        }
    
        public boolean isFourDis() {
            return fourDis;
        }
    
        public void setFiveDis(boolean fiveDis) {
            this.fiveDis = fiveDis;
        }
    
        public boolean isFiveDis() {
            return fiveDis;
        }
    
        public void setSixDis(boolean sixDis) {
            this.sixDis = sixDis;
        }
    
        public boolean isSixDis() {
            return sixDis;
        }
    
        public void setSevenDis(boolean sevenDis) {
            this.sevenDis = sevenDis;
        }
    
        public boolean isSevenDis() {
            return sevenDis;
        }
    
        public void setEightDis(boolean eightDis) {
            this.eightDis = eightDis;
        }
    
        public boolean isEightDis() {
            return eightDis;
        }
    
        public void setNineDis(boolean nineDis) {
            this.nineDis = nineDis;
        }
    
        public boolean isNineDis() {
            return nineDis;
        }
    
    
    }
    

  • Download and Run this sample application-Sample ADF Application 

Saturday 1 June 2013

Using JQuery in Oracle ADF

JQuery is advance javascript library to support client side scripting of HTML, it is free and Opensource software licensed under MIT.
Jquery is designed to make it easier to create animations, enhance look feel of component, smooth navigation.
Read about Jquery- http://jquery.com/ , https://jquery.org/
here i am showing you, how to add Jquery in oracle ADF application.

  • First add Jquery library to your fusion web application, download library file Download
  • Add this file to javascript resources, see image
  • Now create a javascript(Jquery) file to change color of af:inputText, here is javascript code is given




  • function changeColor() {
        if ($("input[name=it1]").val() != null) {
           if (($("input[name=it1]").val().length > 0) && ($("input[name=it1]").val().length < 3)) {
                $("input[name=it1]").css("color", "magenta");
            }
          else if (($("input[name=it1]").val().length > 3) && ($("input[name=it1]").val().length < 6)) {
                $("input[name=it1]").css("color", "red");
            }
            else if (($("input[name=it1]").val().length >= 6) && ($("input[name=it1]").val().length < 9)) {
                $("input[name=it1]").css("color", "yellow");
            }
             else if (($("input[name=it1]").val().length >= 9) && ($("input[name=it1]").val().length < 12)) {
                $("input[name=it1]").css("color", "maroon");
            }
             else if (($("input[name=it1]").val().length >= 12) && ($("input[name=it1]").val().length < 15)) {
                $("input[name=it1]").css("color", "teal");
            }
             else if (($("input[name=it1]").val().length >= 15) && ($("input[name=it1]").val().length < 18)) {
                $("input[name=it1]").css("color", "blue");
            }
            else {
                $("input[name=it1]").css("color", "green");
            }
        }
    }
    

  • Now create a jspx page , and call this JS file as a resource in jspx page, and also add Jquery Lib to jspx page as Resource

  • Now add a input text in page, and call javascript resource using af:clientListener

  • See the code of jspx page-

  • <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:f="http://java.sun.com/jsf/core"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
        <jsp:directive.page contentType="text/html;charset=UTF-8"/>
        <f:view>
            <af:document title="JqueryADF.jspx" id="d1">
             <af:resource type="javascript" source="/javascript/libs/jquery-1.4.4.js"/>
             <af:resource type="javascript" source="/resources/js/inputText.js"/>
                <af:form id="f1">
                <af:inputText label="Chck JQ" id="it1" contentStyle="font-weight:bold;">
                            <af:clientListener type="keyDown" method="changeColor"/>
                        </af:inputText>
                
                </af:form>
            </af:document>
        </f:view>
    </jsp:root>
    

  • Now Run this application and enter value in input text field and see how color is changing with length




  • You can use this , with your password field, for any kind of alert, to make 'Find and Enter' games
  • One more thing , it is difficult to use Jquery with pagefragments because in page fragments component id's are like :t1:cb1, r1:t1:it2. and jquery does not support ':' so you can easily use this with .jspx page
  • Sample ADF application -Download