Examples of TabSet


Examples of com.smartgwt.client.widgets.tab.TabSet

        this.alertDefinition = alertDefinition;
        this.isAuthorizedToModifyAlertDefinitions = alertDefView.isAuthorizedToModifyAlertDefinitions();
        this.alertDefView = alertDefView;

        tabSet = new TabSet();
        tabSet.setHeight100();

        generalPropertiesTab = new Tab(MSG.common_title_generalProp());
        generalProperties = new GeneralPropertiesAlertDefinitionForm(alertDefinition);
        generalPropertiesTab.setPane(generalProperties);
View Full Code Here

Examples of com.smartgwt.client.widgets.tab.TabSet

        topPane.setHeight(80);
        topPane.addMember(form);

        contentPane.addMember(topPane);

        TabSet tabSet = new TabSet();
        tabSet.setWidth100();
        tabSet.setHeight100();

        this.bundlesTab = buildBundlesTab(tabSet);
        tabSet.addTab(bundlesTab);

        contentPane.addMember(tabSet);

        return contentPane;
    }
View Full Code Here

Examples of com.smartgwt.client.widgets.tab.TabSet

        this.bundle = bundle;

        BackButton backButton = new BackButton(MSG.view_bundle_list_backToAll(), BundleTopView.VIEW_ID.getName());
        HeaderLabel headerLabel = new HeaderLabel(IconEnum.BUNDLE.getIcon24x24Path(), StringUtility.escapeHtml(bundle
            .getName()));
        tabs = new TabSet();
        versionsTab = createVersionsTab();
        destinationsTab = createDestinationsTab();
        Tab bundleGroupsTab = createBundleGroupsTab();
        tabs.addTab(versionsTab);
        tabs.addTab(destinationsTab);
View Full Code Here

Examples of com.smartgwt.client.widgets.tab.TabSet

            Criteria criteria = new Criteria();
            criteria.addCriteria("tagNamespace", tag.getNamespace());
            criteria.addCriteria("tagSemantic", tag.getSemantic());
            criteria.addCriteria("tagName", tag.getName());

            container = new TabSet();
            container.setWidth100();
            container.setHeight100();
            container.setTabBarControls(tagCloudView.getDeleteButton());
            container.addTabSelectedHandler(new TabSelectedHandler() {
                public void onTabSelected(TabSelectedEvent event) {
View Full Code Here

Examples of com.smartgwt.client.widgets.tab.TabSet

        topPane.setHeight(80);
        topPane.addMember(form);

        contentPane.addMember(topPane);

        TabSet tabSet = new TabSet();
        tabSet.setWidth100();
        tabSet.setHeight100();

        // TODO: Also add these tabs if the session subject is a member of the Role being viewed.
        if (this.hasManageSecurityPermission) {
            this.permissionsTab = buildPermissionsTab(tabSet);
            tabSet.addTab(permissionsTab);

            if (!this.isSystemRole) {
                this.resourceGroupsTab = buildResourceGroupsTab(tabSet);
                tabSet.addTab(resourceGroupsTab);

                this.bundleGroupsTab = buildBundleGroupsTab(tabSet);
                tabSet.addTab(bundleGroupsTab);
            }

            this.subjectsTab = buildSubjectsTab(tabSet);
            tabSet.addTab(subjectsTab);

            this.ldapGroupsTab = buildLdapGroupsTab(tabSet);
            tabSet.addTab(ldapGroupsTab);
        }

        contentPane.addMember(tabSet);

        return contentPane;
View Full Code Here

Examples of com.smartgwt.client.widgets.tab.TabSet

        this.cronForm.setFields(cronExpressionItem);

        this.cronModeLayout.addMember(this.cronForm);

        final TabSet cronHelpTabSet = new TabSet();
        cronHelpTabSet.setWidth100();
        cronHelpTabSet.setHeight(200);
        Img closeIcon = new Img("[SKIN]/headerIcons/close.png", 16, 16);
        closeIcon.addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                cronHelpTabSet.hide();
            }
        });
        cronHelpTabSet.setTabBarControls(closeIcon);

        Tab formatTab = new Tab(MSG.widget_jobTriggerEditor_tab_format());
        HTMLFlow formatPane = new HTMLFlow();
        formatPane.setWidth100();
        formatPane
            .setContents("<p>A cron expression is a string comprised of 6 or 7 fields separated by white space. Fields can contain any of the\n"
                + "allowed values, along with various combinations of the allowed special characters for that field. The fields are as\n"
                + "follows:</p>\n"
                + "<table cellpadding=\"3\" cellspacing=\"1\">\n"
                + "    <tbody>\n"
                + "\n"
                + "        <tr>\n"
                + "            <th>Field Name</th>\n"
                + "            <th>Mandatory</th>\n"
                + "            <th>Allowed Values</th>\n"
                + "            <th>Allowed Special Characters</th>\n"
                + "        </tr>\n"
                + "        <tr>\n"
                + "\n"
                + "            <td>Seconds</td>\n"
                + "            <td>YES</td>\n"
                + "\n"
                + "            <td>0-59</td>\n"
                + "            <td>, - * /</td>\n"
                + "        </tr>\n"
                + "        <tr>\n"
                + "\n"
                + "            <td>Minutes</td>\n"
                + "            <td>YES</td>\n"
                + "            <td>0-59</td>\n"
                + "\n"
                + "            <td>, - * /</td>\n"
                + "        </tr>\n"
                + "        <tr>\n"
                + "\n"
                + "            <td>Hours</td>\n"
                + "            <td>YES</td>\n"
                + "            <td>0-23</td>\n"
                + "            <td>, - * /</td>\n"
                + "\n"
                + "        </tr>\n"
                + "        <tr>\n"
                + "\n"
                + "            <td>Day of month</td>\n"
                + "            <td>YES</td>\n"
                + "            <td>1-31</td>\n"
                + "            <td>, - * ? / L W<br clear=\"all\" />\n"
                + "            </td>\n"
                + "        </tr>\n"
                + "        <tr>\n"
                + "\n"
                + "            <td>Month</td>\n"
                + "            <td>YES</td>\n"
                + "            <td>1-12 or JAN-DEC</td>\n"
                + "            <td>, - * /</td>\n"
                + "        </tr>\n"
                + "        <tr>\n"
                + "\n"
                + "            <td>Day of week</td>\n"
                + "\n"
                + "            <td>YES</td>\n"
                + "            <td>1-7 or SUN-SAT</td>\n"
                + "            <td>, - * ? / L #</td>\n"
                + "        </tr>\n"
                + "        <tr>\n"
                + "\n"
                + "            <td>Year</td>\n"
                + "            <td>NO</td>\n"
                + "\n"
                + "            <td>empty, 1970-2099</td>\n"
                + "            <td>, - * /</td>\n"
                + "        </tr>\n"
                + "    </tbody>\n"
                + "\n"
                + "</table>\n"
                + "<p>So cron expressions can be as simple as this: <tt>0 * * ? * *</tt> to run every minute on the minute<br />\n"
                + "or more complex, like this: <tt>0/5 14,18,3-39,52 * ? JAN,MAR,SEP MON-FRI 2002-2015</tt></p>\n"
                + "\n"
                + "<h2><a name=\"CronTriggersTutorial-Specialcharacters\"></a>Special Characters</h2>\n"
                + "\n"
                + "<ul>\n"
                + "    <li><tt><b>&#42;</b></tt> (<em>\"all values\"</em>) - used to select all values within a field. For example, \"*\"\n"
                + "    in the minute field means <em>\"every minute\"</em>.</li>\n"
                + "\n"
                + "</ul>\n"
                + "\n"
                + "\n"
                + "<ul>\n"
                + "    <li><tt><b>?</b></tt> (<em>\"no specific value\"</em>) - useful when you need to specify something in one of the\n"
                + "    two fields in which the character is allowed, but not the other. For example, if I want my trigger to fire on a\n"
                + "    particular day of the month (say, the 10th), but don't care what day of the week that happens to be, I would put\n"
                + "    \"10\" in the day-of-month field, and \"?\" in the day-of-week field. See the examples below for clarification.</li>\n"
                + "\n"
                + "</ul>\n"
                + "\n"
                + "\n"
                + "<ul>\n"
                + "    <li><tt><b>&#45;</b></tt> &#45; used to specify ranges. For example, \"10-12\" in the hour field means <em>\"the\n"
                + "    hours 10, 11 and 12\"</em>.</li>\n"
                + "\n"
                + "</ul>\n"
                + "\n"
                + "\n"
                + "<ul>\n"
                + "    <li><tt><b>,</b></tt> &#45; used to specify additional values. For example, \"MON,WED,FRI\" in the day-of-week\n"
                + "    field means <em>\"the days Monday, Wednesday, and Friday\"</em>.</li>\n"
                + "\n"
                + "</ul>\n"
                + "\n"
                + "\n"
                + "<ul>\n"
                + "\n"
                + "    <li><tt><b>/</b></tt> &#45; used to specify increments. For example, \"0/15\" in the seconds field means <em>\"the\n"
                + "    seconds 0, 15, 30, and 45\"</em>. And \"5/15\" in the seconds field means <em>\"the seconds 5, 20, 35, and 50\"</em>. You can\n"
                + "    also specify '/' after the '<b>' character - in this case '</b>' is equivalent to having '0' before the '/'. '1/3'\n"
                + "    in the day-of-month field means <em>\"fire every 3 days starting on the first day of the month\"</em>.</li>\n"
                + "\n"
                + "</ul>\n"
                + "\n"
                + "<ul>\n"
                + "    <li><tt><b>L</b></tt> (<em>\"last\"</em>) - has different meaning in each of the two fields in which it is\n"
                + "    allowed. For example, the value \"L\" in the day-of-month field means <em>\"the last day of the month\"</em> &#45; day\n"
                + "    31 for January, day 28 for February on non-leap years. If used in the day-of-week field by itself, it simply means\n"
                + "    \"7\" or \"SAT\". But if used in the day-of-week field after another value, it means <em>\"the last xxx day of the\n"
                + "    month\"</em> &#45; for example \"6L\" means <em>\"the last friday of the month\"</em>. When using the 'L' option, it is\n"
                + "    important not to specify lists, or ranges of values, as you'll get confusing results.</li>\n"
                + "\n"
                + "</ul>\n"
                + "\n"
                + "\n"
                + "<ul>\n"
                + "    <li><tt><b>W</b></tt> (<em>\"weekday\"</em>) - used to specify the weekday (Monday-Friday) nearest the given day.\n"
                + "    As an example, if you were to specify \"15W\" as the value for the day-of-month field, the meaning is: <em>\"the\n"
                + "    nearest weekday to the 15th of the month\"</em>. So if the 15th is a Saturday, the trigger will fire on Friday the 14th.\n"
                + "    If the 15th is a Sunday, the trigger will fire on Monday the 16th. If the 15th is a Tuesday, then it will fire on\n"
                + "    Tuesday the 15th. However if you specify \"1W\" as the value for day-of-month, and the 1st is a Saturday, the trigger\n"
                + "    will fire on Monday the 3rd, as it will not 'jump' over the boundary of a month's days. The 'W' character can only\n"
                + "    be specified when the day-of-month is a single day, not a range or list of days.\n"
                + "        <div class=\"tip\">\n"
                + "            The 'L' and 'W' characters can also be combined in the day-of-month field to yield 'LW', which\n"
                + "            translates to <em>\"last weekday of the month\"</em>.\n"
                + "        </div>\n"
                + "\n"
                + "    </li>\n"
                + "\n"
                + "    <li><tt><b>&#35;</b></tt> &#45; used to specify \"the nth\" XXX day of the month. For example, the value of \"6#3\"\n"
                + "    in the day-of-week field means <em>\"the third Friday of the month\"</em> (day 6 = Friday and \"#3\" = the 3rd one in\n"
                + "    the month). Other examples: \"2#1\" = the first Monday of the month and \"4#5\" = the fifth Wednesday of the month. Note\n"
                + "    that if you specify \"#5\" and there is not 5 of the given day-of-week in the month, then no firing will occur that\n"
                + "    month.\n"
                + "        <div class=\"tip\">\n"
                + "            The legal characters and the names of months and days of the week are not case sensitive. <tt>MON</tt>\n"
                + "            is the same as <tt>mon</tt>.\n"
                + "        </div>\n"
                + "\n"
                + "    </li>\n"
                + "</ul>"
                + "<h2><a name=\"CronTriggersTutorial-Notes\"></a>Notes</h2>\n"
                + "\n"
                + "<ul>\n"
                + "    <li>Support for specifying both a day-of-week and a day-of-month value is not complete (you must currently use\n"
                + "    the '?' character in one of these fields).</li>\n"
                + "    <li>Be careful when setting fire times between mid-night and 1:00 AM - \"daylight savings\" can cause a skip or a\n"
                + "    repeat depending on whether the time moves back or jumps forward.</li>\n" + "\n" + "</ul>");
        formatTab.setPane(formatPane);

        Tab examplesTab = new Tab(MSG.widget_jobTriggerEditor_tab_examples());
        HTMLFlow examplesPane = new HTMLFlow();
        examplesPane.setWidth100();
        examplesPane.setContents("<table cellpadding=\"3\" cellspacing=\"1\">\n" + "    <tbody>\n" + "        <tr>\n"
            + "            <th>Expression</th>\n" + "\n" + "            <th>Meaning</th>\n" + "        </tr>\n"
            + "        <tr>\n" + "            <td><tt>0 0 12 * * ?</tt></td>\n" + "\n"
            + "            <td>Fire at 12pm (noon) every day</td>\n" + "        </tr>\n" + "        <tr>\n" + "\n"
            + "            <td><tt>0 15 10 ? * *</tt></td>\n" + "            <td>Fire at 10:15am every day</td>\n"
            + "        </tr>\n" + "        <tr>\n" + "            <td><tt>0 15 10 * * ?</tt></td>\n" + "\n"
            + "            <td>Fire at 10:15am every day</td>\n" + "\n" + "        </tr>\n" + "        <tr>\n"
            + "            <td><tt>0 15 10 * * ? *</tt></td>\n" + "            <td>Fire at 10:15am every day</td>\n"
            + "        </tr>\n" + "        <tr>\n" + "            <td><tt>0 15 10 * * ? 2005</tt></td>\n" + "\n"
            + "            <td>Fire at 10:15am every day during the year 2005</td>\n" + "        </tr>\n"
            + "        <tr>\n" + "            <td><tt>0 * 14 * * ?</tt></td>\n"
            + "            <td>Fire every minute starting at 2pm and ending at 2:59pm, every day</td>\n"
            + "        </tr>\n" + "        <tr>\n" + "\n" + "            <td><tt>0 0/5 14 * * ?</tt></td>\n" + "\n"
            + "            <td>Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day</td>\n"
            + "        </tr>\n" + "        <tr>\n" + "            <td><tt>0 0/5 14,18 * * ?</tt></td>\n"
            + "            <td>Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5\n"
            + "            minutes starting at 6pm and ending at 6:55pm, every day</td>\n" + "\n" + "        </tr>\n"
            + "        <tr>\n" + "            <td><tt>0 0-5 14 * * ?</tt></td>\n" + "\n"
            + "            <td>Fire every minute starting at 2pm and ending at 2:05pm, every day</td>\n"
            + "        </tr>\n" + "        <tr>\n" + "            <td><tt>0 10,44 14 ? 3 WED</tt></td>\n" + "\n"
            + "            <td>Fire at 2:10pm and at 2:44pm every Wednesday in the month of March.</td>\n"
            + "        </tr>\n" + "        <tr>\n" + "            <td><tt>0 15 10 ? * MON-FRI</tt></td>\n" + "\n"
            + "            <td>Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday</td>\n"
            + "        </tr>\n" + "        <tr>\n" + "\n" + "            <td><tt>0 15 10 15 * ?</tt></td>\n"
            + "            <td>Fire at 10:15am on the 15th day of every month</td>\n" + "        </tr>\n"
            + "        <tr>\n" + "            <td><tt>0 15 10 L * ?</tt></td>\n" + "\n"
            + "            <td>Fire at 10:15am on the last day of every month</td>\n" + "\n" + "        </tr>\n"
            + "        <tr>\n" + "            <td><tt>0 15 10 ? * 6L</tt></td>\n"
            + "            <td>Fire at 10:15am on the last Friday of every month</td>\n" + "        </tr>\n"
            + "        <tr>\n" + "            <td><tt>0 15 10 ? * 6L</tt></td>\n" + "\n"
            + "            <td>Fire at 10:15am on the last Friday of every month</td>\n" + "        </tr>\n"
            + "        <tr>\n" + "            <td><tt>0 15 10 ? * 6L 2002-2005</tt></td>\n"
            + "            <td>Fire at 10:15am on every last friday of every month during the years 2002,\n"
            + "            2003, 2004 and 2005</td>\n" + "        </tr>\n" + "        <tr>\n" + "\n"
            + "            <td><tt>0 15 10 ? * 6#3</tt></td>\n" + "\n"
            + "            <td>Fire at 10:15am on the third Friday of every month</td>\n" + "        </tr>\n"
            + "        <tr>\n" + "            <td><tt>0 0 12 1/5 * ?</tt></td>\n"
            + "            <td>Fire at 12pm (noon) every 5 days every month, starting on the first day of the\n"
            + "            month.</td>\n" + "\n" + "        </tr>\n" + "        <tr>\n"
            + "            <td><tt>0 11 11 11 11 ?</tt></td>\n" + "\n"
            + "            <td>Fire every November 11th at 11:11am.</td>\n" + "        </tr>\n" + "    </tbody>\n"
            + "</table>");
        examplesTab.setPane(examplesPane);

        cronHelpTabSet.addTab(formatTab);
        cronHelpTabSet.addTab(examplesTab);

        cronHelpTabSet.setVisible(false);

        FormItemIcon helpIcon = new FormItemIcon();
        helpIcon.setSrc("[SKIN]/actions/help.png");
        cronExpressionItem.setIcons(helpIcon);
        cronExpressionItem.addIconClickHandler(new IconClickHandler() {
            public void onIconClick(IconClickEvent event) {
                cronHelpTabSet.show();
            }
        });

        this.cronModeLayout.addMember(cronHelpTabSet);
        addMember(this.cronModeLayout);
View Full Code Here

Examples of com.smartgwt.client.widgets.tab.TabSet

        final ListGrid listGrid = new ListGrid();
        listGrid.setUseAllDataSourceFields(true);
        listGrid.setDataSource(dataSource);
        listGrid.setAutoFetchData(true);

        TabSet tabSet = new TabSet();
        Tab viewTab = new Tab("View");

        Canvas viewLabel = new Canvas();
        viewLabel.setContents("[Record Details can be dispalyed here]");
        viewTab.setPane(viewLabel);

        Tab editTab = new Tab("Edit");

        Canvas editLabel = new Canvas();
        editLabel.setContents("[Form for edits can be dispalyed here]");
        editTab.setPane(editLabel);

        tabSet.setTabs(viewTab, editTab);

        TreeGrid treeGrid = new TreeGrid();
        treeGrid.setWidth("30%");
        treeGrid.setShowConnectors(true);
        treeGrid.setShowResizeBar(true);
View Full Code Here

Examples of com.smartgwt.client.widgets.tab.TabSet

    public Canvas getViewPanel() {
        final ValuesManager vm = new ValuesManager();


       
        final TabSet theTabs = new TabSet();
        theTabs.setWidth(400);
        theTabs.setHeight(250);
       
        Tab item = new Tab();
        item.setTitle("Item");
       
        final DynamicForm form0 = new DynamicForm();
        form0.setID("form0");
        form0.setValuesManager(vm);
       
        TextItem itemName = new TextItem();
        itemName.setName("itemName");
        itemName.setTitle("Item");
       
        TextAreaItem description = new TextAreaItem();
        description.setName("description");
        description.setTitle("Description");
       
        FloatItem price = new FloatItem();
        price.setName("price");
        price.setTitle("Price");
        price.setDefaultValue("low");
       
        form0.setFields(itemName, description, price);
        item.setPane(form0);

        Tab stock = new Tab();
        stock.setTitle("Stock");
       
        final DynamicForm form1 = new DynamicForm();
        form1.setID("form1");
        form1.setValuesManager(vm);
       
        CheckboxItem inStock = new CheckboxItem();
        inStock.setName("inStock");
        inStock.setTitle("In Stock");
       
        DateItem nextShipment = new DateItem();
        nextShipment.setName("nextShipment");
        nextShipment.setTitle("Next Shipment");
        nextShipment.setUseTextField(true);
       
        form1.setFields(inStock, nextShipment);
        stock.setPane(form1);
       
        theTabs.setTabs(item, stock);
       
        IButton submit = new IButton();
        submit.setTitle("Submit");
        submit.addClickHandler(new ClickHandler() {
      public void onClick(ClickEvent event) {
        vm.validate();
        if (form1.hasErrors()) {
          theTabs.selectTab(1);
        } else {
          theTabs.selectTab(0);
        }
      }
        });
       
        VLayout vLayout = new VLayout();
View Full Code Here

Examples of com.smartgwt.client.widgets.tab.TabSet

        }
    }

    public Canvas getViewPanel() {

        final TabSet tabSet = new TabSet();
        tabSet.setTabBarPosition(Side.TOP);
        tabSet.setWidth(400);
        tabSet.setHeight(200);

        Tab tTab1 = new Tab("Blue", "pieces/16/pawn_blue.png");
        Img tImg1 = new Img("pieces/48/pawn_blue.png", 48, 48);
        tTab1.setPane(tImg1);

        Tab tTab2 = new Tab("Green", "pieces/16/pawn_green.png");
        Img tImg2 = new Img("pieces/48/pawn_green.png", 48, 48);
        tTab2.setPane(tImg2);

        tabSet.addTab(tTab1);
        tabSet.addTab(tTab2);

        HLayout buttons = new HLayout();
        buttons.setMembersMargin(15);

        IButton addButton = new IButton("Add Tab");
        addButton.addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                //alternate between yellow pawn and green cube
                if (tabSet.getTabs().length % 2 == 0) {
                    Tab tab = new Tab("Yellow", "pieces/16/pawn_yellow.png");
                    Img img = new Img("pieces/48/pawn_yellow.png", 48, 48);
                    tab.setPane(img);
                    tabSet.addTab(tab);
                } else {
                    Tab tab = new Tab("Green", "pieces/16/cube_green.png");
                    Img img = new Img("pieces/48/cube_green.png", 48, 48);
                    tab.setPane(img);
                    tabSet.addTab(tab);
                }
                if (tabSet.getTabs().length == 0) {
                    tabSet.selectTab(0);
                }
            }
        });

        IButton removeButton = new IButton("Remove Tab");
        removeButton.addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                tabSet.removeTab(tabSet.getTabs().length - 1);
            }
        });

        buttons.addMember(addButton);
        buttons.addMember(removeButton);
View Full Code Here

Examples of com.smartgwt.client.widgets.tab.TabSet

        win.setTop(windowTop);
        win.setCanDragReposition(true);
        win.setCanDragResize(true);
        win.setMembersMargin(5);

        final TabSet tabs = new TabSet();
        tabs.setTabBarPosition(Side.TOP);
        tabs.setWidth100();
        tabs.setHeight100();
        for (int i = 0; i < sourceUrls.length; i++) {
            SourceEntity sourceUrl = sourceUrls[i];
            tabs.addTab(buildSourceTab(sourceUrl));
        }

        int lastPeriodIndex = getClass().getName().lastIndexOf('.');
        String simpleClassName = getClass().getName().substring(lastPeriodIndex + 1);
        String[] dataURLs = DataURLRecords.getDataURLs(simpleClassName);
        if (dataURLs != null) {
            for (String dataURL : dataURLs) {
                String url = "sourcegen/" + dataURL + ".html";
                int lastSlashIndex = dataURL.lastIndexOf('/');
                String tabTitle = lastSlashIndex >= 0 ? dataURL.substring(lastSlashIndex + 1) : dataURL;
                tabs.addTab(buildSourceTab(tabTitle, "silk/page_white_cup.png", url));
            }
        }

        if (getCssUrl() != null)
            tabs.addTab(buildSourceTab("CSS", "silk/css.png", getCssUrl()));

        if (getJsonDataUrl() != null)
            tabs.addTab(buildSourceTab("JSON", "silk/database_table.png", getJsonDataUrl()));

        if (getXmlDataUrl() != null)
            tabs.addTab(buildSourceTab("XML", "silk/database_table.png", getXmlDataUrl()));

        win.addItem(tabs);
        addChild(win);
        win.show();
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.