Advertisement
ILyaCyclone

Untitled

Feb 19th, 2019
478
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 32.77 KB | None | 0 0
  1. package ru.miit.cms.view.beans;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Map;
  6.  
  7. import javax.faces.application.FacesMessage;
  8. import javax.faces.component.UIComponent;
  9. import javax.faces.context.FacesContext;
  10. import javax.faces.event.ActionEvent;
  11. import javax.faces.event.ValueChangeEvent;
  12. import javax.faces.model.SelectItem;
  13.  
  14. import oracle.adf.model.BindingContext;
  15. import oracle.adf.model.binding.DCBindingContainer;
  16. import oracle.adf.model.binding.DCIteratorBinding;
  17. import oracle.adf.share.ADFContext;
  18. import oracle.adf.share.logging.ADFLogger;
  19. import oracle.adf.view.rich.component.rich.RichPopup;
  20. import oracle.adf.view.rich.component.rich.data.RichColumn;
  21. import oracle.adf.view.rich.component.rich.data.RichTable;
  22. import oracle.adf.view.rich.component.rich.layout.RichPanelTabbed;
  23. import oracle.adf.view.rich.component.rich.layout.RichShowDetailItem;
  24. import oracle.adf.view.rich.context.AdfFacesContext;
  25. import oracle.adf.view.rich.event.DialogEvent;
  26. import oracle.adf.view.rich.event.PopupFetchEvent;
  27. import oracle.adf.view.rich.event.QueryEvent;
  28. import oracle.adf.view.rich.model.FilterableQueryDescriptor;
  29. import oracle.adf.view.rich.render.ClientEvent;
  30.  
  31. import oracle.binding.BindingContainer;
  32. import oracle.binding.OperationBinding;
  33.  
  34. import oracle.jbo.Key;
  35. import oracle.jbo.Row;
  36. import oracle.jbo.domain.DBSequence;
  37. import oracle.jbo.domain.Number;
  38.  
  39. import org.apache.myfaces.trinidad.event.ReturnEvent;
  40. import org.apache.myfaces.trinidad.event.SelectionEvent;
  41.  
  42. import ru.miit.cms.view.CmsResourceBundle;
  43. import ru.miit.cms.view.utils.ADFUtils;
  44. import ru.miit.cms.view.utils.Iterators;
  45. import ru.miit.cms.view.utils.JSFUtils;
  46. import ru.miit.cms.view.utils.TableCriteriaManager;
  47. import ru.miit.cms.view.utils.UIManager;
  48. import ru.miit.cms.view.utils.currentrow.AbstractRowSetter;
  49. import ru.miit.cms.view.utils.currentrow.ContentComplexRowSetter;
  50. import ru.miit.cms.view.utils.currentrow.InformationRowSetter;
  51. import ru.miit.cms.view.utils.currentrow.KindInformationRowSetter;
  52.  
  53.  
  54. public class Page1ManagedBean {
  55.     private RichPopup contentDeletePopup;
  56.     private RichShowDetailItem contentTab;
  57.  
  58.     public Page1ManagedBean() {
  59.         super();
  60.         //      _logger.info("new instance");
  61.     }
  62.  
  63.     private static ADFLogger _logger = ADFLogger.createADFLogger(Page1ManagedBean.class);
  64.  
  65.     private RichPanelTabbed infPanelTabbed;
  66.  
  67.     public void showDeleteContentPopup(ClientEvent ce) {
  68.         contentDeletePopup.show(new RichPopup.PopupHints());
  69.     }
  70.  
  71.     public String rollback() {
  72.         Key kiKey = ADFUtils.findIterator("KindInformationView1Iterator").getCurrentRow().getKey();
  73.         Key iKey = ADFUtils.findIterator("InformationView1Iterator").getCurrentRow().getKey();
  74.         Key ccKey = ADFUtils.findIterator("ContentComplexView1Iterator").getCurrentRow().getKey();
  75.  
  76.         ADFUtils.findOperation("Rollback").execute();
  77.  
  78.         if (TableCriteriaManager.setKindInformationCurrentRow(kiKey)) {
  79.             if (TableCriteriaManager.setInformationCurrentRow(iKey)) {
  80.                 TableCriteriaManager.setContentComplexCurrentRow(ccKey);
  81.             }
  82.         }
  83.  
  84.         return null;
  85.     }
  86.  
  87.  
  88.     //    public void onInformationQuery_original(QueryEvent queryEvent) {
  89.     //        //default EL string created when dragging the table
  90.     //        //to the JSF page
  91.     //        //#{bindings.allEmployeesQuery.processQuery}
  92.     //
  93.     //        FilterableQueryDescriptor fqd =
  94.     //            (FilterableQueryDescriptor)queryEvent.getDescriptor();
  95.     //        Map map = fqd.getFilterCriteria();
  96.     //
  97.     //        BindingContext bctx = BindingContext.getCurrent();
  98.     //        DCBindingContainer bindings =
  99.     //            (DCBindingContainer)bctx.getCurrentBindingsEntry();
  100.     //
  101.     //        //access the method bindings to set the bind variables on the ViewCriteria
  102.     //        OperationBinding rangeStartOperationBinding =
  103.     //            bindings.getOperationBinding("setActualDateRangeStart");
  104.     //        OperationBinding rangeEndOperationBinding =
  105.     //            bindings.getOperationBinding("setActualDateRangeEnd");
  106.     //
  107.     //        //get the temporary and transient attributes from the filter map
  108.     //        //note that these attributes exist no-where in the business service
  109.     //        Object actualDateStartRange = map.get("ActualDateRangeStart");
  110.     //        Object actualDateEndRange = map.get("ActualDateRangeEnd");
  111.     //
  112.     //        //set the start and end date of the range to search
  113.     //        rangeStartOperationBinding.getParamsMap().put("value",
  114.     //                                                      actualDateStartRange);
  115.     //        rangeEndOperationBinding.getParamsMap().put("value",
  116.     //                                                    actualDateEndRange);
  117.     //
  118.     //        //remove temporary attributes as they don't exist in the
  119.     //        //business service and would cause a NPE if passed with
  120.     //        //the query
  121.     //
  122.     //        map.remove("ActualDateRangeStart");
  123.     //        map.remove("ActualDateRangeEnd");
  124.     //
  125.     //        // hisdate range filter
  126.     //
  127.     //
  128.     //        //set bind variable on the business service
  129.     //        rangeStartOperationBinding.execute();
  130.     //        rangeEndOperationBinding.execute();
  131.     //
  132.     //        //MethodExpression processQuery = (MethodExpression)
  133.     //
  134.     //        JSFUtils.resolveMethodExpression("#{bindings.InformationView1Query.processQuery}",
  135.     //                                         Object.class,
  136.     //                                         new Class[] { QueryEvent.class },
  137.     //                                         new Object[] { queryEvent });
  138.     //
  139.     //
  140.     //        //put values back so search filter is not empty
  141.     //        map.put("ActualDateRangeStart", actualDateStartRange);
  142.     //        map.put("ActualDateRangeEnd", actualDateEndRange);
  143.     //
  144.     //    }
  145.  
  146.     public void deleteContentDialogListener(DialogEvent de) {
  147.         if (de.getOutcome() == DialogEvent.Outcome.ok) {
  148.             boolean success = false;
  149.             Object result = null;
  150.             try {
  151.                 OperationBinding deleteOperation = ADFUtils.findOperation("deleteContentVersion");
  152.                 result = deleteOperation.execute();
  153.                 //                success = (deleteOperation.getErrors().isEmpty() && (result = deleteOperation.getResult()) == null);
  154.                 success = (deleteOperation.getErrors().isEmpty() && result == null);
  155.             } catch (Exception ex) {
  156.                 ex.printStackTrace();
  157.             }
  158.  
  159.             if (success) {
  160.                 //                refreshContentTable();
  161.                 UIManager.refreshContentComplexPanelCollection(true, false);
  162.             } else {
  163.                 //TODO in Russian!
  164.                 String message = "Content delete error";
  165.  
  166.                 if (result != null && result instanceof Exception) {
  167.                     message += ((Exception)result).getMessage(); // toString(); ?
  168.                 }
  169.                 FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(message));
  170.             }
  171.         }
  172.     }
  173.  
  174.     private Object applyDateRangeFilter(Map map, String attributeName) {
  175.         BindingContext bctx = BindingContext.getCurrent();
  176.         DCBindingContainer bindings = (DCBindingContainer)bctx.getCurrentBindingsEntry();
  177.  
  178.         //access the method bindings to set the bind variables on the ViewCriteria
  179.         OperationBinding rangeOperationBinding = bindings.getOperationBinding("set" + attributeName);
  180.  
  181.         //get the temporary and transient attributes from the filter map
  182.         //note that these attributes exist no-where in the business service
  183.         Object dateRange = map.get(attributeName);
  184.  
  185.         //set the start and end date of the range to search
  186.         rangeOperationBinding.getParamsMap().put("value", dateRange);
  187.  
  188.         //remove temporary attributes as they don't exist in the
  189.         //business service and would cause a NPE if passed with
  190.         //the query
  191.  
  192.         map.remove(attributeName);
  193.  
  194.         //set bind variable on the business service
  195.         rangeOperationBinding.execute();
  196.  
  197.         return dateRange;
  198.     }
  199.  
  200.     public void onInformationQuery(QueryEvent queryEvent) {
  201.         //default EL string created when dragging the table
  202.         //to the JSF page
  203.         //#{bindings.allEmployeesQuery.processQuery}
  204.  
  205.         FilterableQueryDescriptor fqd = (FilterableQueryDescriptor)queryEvent.getDescriptor();
  206.         Map map = fqd.getFilterCriteria();
  207.  
  208.         String[] dateAttributeNames = { "ActualDate", "Hisdate" };
  209.  
  210.         Object[] dateStarts = new Object[dateAttributeNames.length];
  211.         Object[] dateEnds = new Object[dateAttributeNames.length];
  212.  
  213.         for (int i = 0; i < dateAttributeNames.length; i++) {
  214.             dateStarts[i] = applyDateRangeFilter(map, dateAttributeNames[i] + "RangeStart");
  215.             dateEnds[i] = applyDateRangeFilter(map, dateAttributeNames[i] + "RangeEnd");
  216.         }
  217.  
  218.         //    Object actualDateStartRange = applyDateRangeFilter(map, "ActualDateRangeStart");
  219.         //    Object actualDateEndRange = applyDateRangeFilter(map, "ActualDateRangeEnd");
  220.  
  221.         //MethodExpression processQuery = (MethodExpression)
  222.  
  223.         JSFUtils.resolveMethodExpression("#{bindings.InformationView1Query.processQuery}", Object.class,
  224.                                          new Class[] { QueryEvent.class }, new Object[] { queryEvent });
  225.  
  226.  
  227.         //put values back so search filter is not empty
  228.         //      map.put("ActualDateRangeStart", actualDateStartRange);
  229.         //      map.put("ActualDateRangeEnd", actualDateEndRange);
  230.  
  231.         for (int i = 0; i < dateAttributeNames.length; i++) {
  232.             map.put(dateAttributeNames[i] + "RangeStart", dateStarts[i]);
  233.             map.put(dateAttributeNames[i] + "RangeEnd", dateEnds[i]);
  234.         }
  235.     }
  236.  
  237.  
  238.     public void openTab(ActionEvent ae) {
  239.         String tabNumString = (String)ae.getComponent().getAttributes().get("tabNum");
  240.         if (tabNumString != null) {
  241.             try {
  242.                 UIManager.openTab(Integer.parseInt(tabNumString));
  243.             } catch (Exception e) {
  244.                 _logger.severe(e);
  245.             }
  246.         }
  247.     }
  248.  
  249.     public void selectParamTab(ClientEvent clientEvent) {
  250.         UIManager.openTab(0);
  251.         //        selectInfTab(0);
  252.     }
  253.  
  254.     public void selectContentTab(ClientEvent clientEvent) {
  255.         UIManager.openTab(1);
  256.         //        selectInfTab(1);
  257.     }
  258.  
  259.     public void selectCategsTab(ClientEvent clientEvent) {
  260.         UIManager.openTab(2);
  261.         //        selectInfTab(2);
  262.     }
  263.  
  264.     public void selectBindsTab(ClientEvent clientEvent) {
  265.         UIManager.openTab(3);
  266.         //        selectInfTab(3);
  267.     }
  268.     //
  269.     //    private void selectInfTab(int selectItemIndex) {
  270.     //        try {
  271.     //            List<UIComponent> tabs = infPanelTabbed.getChildren();
  272.     //            if (tabs.get(selectItemIndex) instanceof RichShowDetailItem &&
  273.     //                !((RichShowDetailItem)tabs.get(selectItemIndex)).isDisclosed()) {
  274.     //                for (int currentIndex = 0; currentIndex < tabs.size();
  275.     //                     currentIndex++) {
  276.     //                    UIComponent child = tabs.get(currentIndex);
  277.     //                    if (child instanceof RichShowDetailItem) {
  278.     //                        ((RichShowDetailItem)child).setDisclosed(currentIndex ==
  279.     //                                                                 selectItemIndex);
  280.     //                    }
  281.     //                }
  282.     //                AdfFacesContext.getCurrentInstance().addPartialTarget(infPanelTabbed);
  283.     //            }
  284.     //        } catch (Exception e) {
  285.     //            e.printStackTrace();
  286.     //        }
  287.     //    }
  288.  
  289.     public boolean isCategorySelected() {
  290.         //        System.out.println(getClass() + ".isCategorySelected(): line 223");
  291.  
  292.         List<Number> selectedCategoriesList = // does not match any LVT entry
  293. //        List selectedCategoriesList =
  294.             ADFUtils.attributeListForIterator("BindingInfCategoriesView1Iterator", "IdInformationCategory");
  295.         if (selectedCategoriesList.isEmpty()) {
  296.             return false;
  297.         }
  298.         Number idInformationCategory = (Number)JSFUtils.resolveExpression("#{row.IdInformationCategory}");
  299.         return selectedCategoriesList.contains(idInformationCategory);
  300.     }
  301. //    public boolean isCategorySelected() {
  302. //        //        System.out.println(getClass() + ".isCategorySelected(): line 223");
  303. //
  304. //        List<Number> selectedCategoriesList =
  305. //            ADFUtils.attributeListForIterator("BindingInfCategoriesView1Iterator", "IdInformationCategory");
  306. //        if (selectedCategoriesList.isEmpty()) {
  307. //            return false;
  308. //        }
  309. //        Number idInformationCategory = (Number)JSFUtils.resolveExpression("#{row.IdInformationCategory}");
  310. //        return selectedCategoriesList.contains(idInformationCategory);
  311. //    }
  312.  
  313.     public String addCategory() {
  314.         OperationBinding createOper = ADFUtils.findOperation("CreateInfCategory");
  315.  
  316.         if (ADFUtils.findOperation("DeleteInfCategoryForDisable").isOperationEnabled()) {
  317.             createOper.execute();
  318.             if (!createOper.getErrors().isEmpty()) {
  319.                 System.err.println("addCategory() errors");
  320.                 return null;
  321.             }
  322.             ADFUtils.findOperation("Commit").execute();
  323.         }
  324.  
  325.  
  326.         try {
  327.             ADFUtils.findIterator("AvailInformationCategoriesView1Iterator").executeQuery();
  328.  
  329.             AdfFacesContext.getCurrentInstance().addPartialTarget(FacesContext.getCurrentInstance().getViewRoot().findComponent("pc6:t9"));
  330.             AdfFacesContext.getCurrentInstance().addPartialTarget(FacesContext.getCurrentInstance().getViewRoot().findComponent("pc5:t10"));
  331.             //ADFUtils.findIterator("InformationCategoryView1Iterator").getViewObject().next();
  332.  
  333.         } catch (Exception e) {
  334.             System.err.println("addCategory() deselect row error");
  335.         }
  336.         return null;
  337.     }
  338.  
  339.     public void addCategory(ClientEvent clientEvent) {
  340.         addCategory();
  341.     }
  342.  
  343.     public String deleteCategory() {
  344.         OperationBinding deleteOper = ADFUtils.findOperation("DeleteCurrentBindingInfCategories");
  345.  
  346.         if (deleteOper.isOperationEnabled()) {
  347.             deleteOper.execute();
  348.             if (!deleteOper.getErrors().isEmpty()) {
  349.                 System.err.println("deleteCategory() errors");
  350.                 return null;
  351.             }
  352.         }
  353.         ADFUtils.findOperation("Commit").execute();
  354.         ADFUtils.findIterator("AvailInformationCategoriesView1Iterator").executeQuery();
  355.  
  356.  
  357.         AdfFacesContext.getCurrentInstance().addPartialTarget(FacesContext.getCurrentInstance().getViewRoot().findComponent("pc6:t9"));
  358.         AdfFacesContext.getCurrentInstance().addPartialTarget(FacesContext.getCurrentInstance().getViewRoot().findComponent("pc5:t10"));
  359.  
  360.         //        try {
  361.         //        ((RichTable)FacesContext.getCurrentInstance().getViewRoot().findComponent(
  362.         //              "pc6:t9"
  363.         //            )).setSelectedRowKeys(null);
  364.         //        } catch (Exception e) {
  365.         //          System.err.println("deleteCategory() deselect row error");
  366.         //        }
  367.         return null;
  368.     }
  369.  
  370.     public void deleteCategory(ClientEvent clientEvent) {
  371.         deleteCategory();
  372.     }
  373.  
  374.     //    public void linkMetatermReturnListener(ReturnEvent e) {
  375.     //        ADFUtils.findIterator(Iterators.INFORMATION_METATERMS_KIS).executeQuery();
  376.     //        AdfFacesContext.getCurrentInstance().addPartialTarget(FacesContext.getCurrentInstance().getViewRoot().findComponent("pc7:t5"));
  377.     //        AdfFacesContext.getCurrentInstance().addPartialTarget(FacesContext.getCurrentInstance().getViewRoot().findComponent("pc7:cb18"));
  378.     //
  379.     //    }
  380.     //
  381.     //    public void deleteMetatermDialogListener(DialogEvent de) {
  382.     //        if (de.getOutcome().equals(DialogEvent.Outcome.yes)) {
  383.     //            ADFUtils.findIterator(Iterators.INFORMATION_METATERMS_KIS).removeCurrentRow();
  384.     //            ADFUtils.findOperation("Commit").execute();
  385.     //            AdfFacesContext.getCurrentInstance().addPartialTarget(FacesContext.getCurrentInstance().getViewRoot().findComponent("pc7:t5"));
  386.     //            AdfFacesContext.getCurrentInstance().addPartialTarget(FacesContext.getCurrentInstance().getViewRoot().findComponent("pc7:cb18"));
  387.     //        }
  388.     //    }
  389.  
  390.     /**
  391.      * method for getting bookmarkable link, works but unused
  392.      * @return
  393.      */
  394.     public String getBookmarkableLink() {
  395.         String link = null;
  396.  
  397.         String kiRowKey = ADFUtils.findIterator("KindInformationView1Iterator").getCurrentRowWithKeyValue();
  398.         String iRowKey = ADFUtils.findIterator("InformationView1Iterator").getCurrentRowWithKeyValue();
  399.         String ccRowKey = ADFUtils.findIterator("ContentComplexView1Iterator").getCurrentRowWithKeyValue();
  400.  
  401.         List<UIComponent> tabs = infPanelTabbed.getChildren();
  402.         int tabNum = -1;
  403.         for (UIComponent tab : tabs) {
  404.             if (tab instanceof RichShowDetailItem) {
  405.                 tabNum++;
  406.                 if (((RichShowDetailItem)tab).isDisclosed()) {
  407.                     break;
  408.                 }
  409.             }
  410.         }
  411.  
  412.         link = kiRowKey + ":" + iRowKey + ":" + ccRowKey + ":" + tabNum;
  413.         return link;
  414.     }
  415.  
  416.     public void addMetatermLink(ActionEvent e) {
  417.         ADFUtils.findOperation("CreateInformationMetaterm").execute();
  418.         ADFUtils.findIterator("InformationMetatermsKisView1Iterator").executeQuery();
  419.         ADFUtils.findOperation("Commit").execute();
  420.     }
  421.  
  422.     public void delMetatermLink(ActionEvent e) {
  423.         ADFUtils.findOperation("DeleteInformationMetaterm").execute();
  424.         ADFUtils.findOperation("Commit").execute();
  425.     }
  426.  
  427.     public boolean isAddMetatermLinkAllowed() {
  428.         return !ADFUtils.attributeListForIterator("InformationMetatermsKisView1Iterator",
  429.                                                   "IdMetatermKis").contains(ADFUtils.getBoundAttributeValue("IdMetaterm"));
  430.     }
  431.  
  432.     public void toActualInformation(ActionEvent ae) {
  433.         toInformationId((Number)ADFUtils.getBoundAttributeValue("ActualIdInf"));
  434.     }
  435.  
  436.     public void toBaseInformation(ActionEvent ae) {
  437.         toInformationId((Number)ADFUtils.getBoundAttributeValue("IdIVersion"));
  438.     }
  439.  
  440.     public void toInformationId(Number idInformation) {
  441.         if (TableCriteriaManager.setInformationCurrentRow(new DBSequence(idInformation))) {
  442.             UIManager.refreshComponent("d1");
  443.         } else {
  444.             RichColumn idColumn = (RichColumn)UIManager.getComponent("pc1:t2:c_i_id");
  445.             if (idColumn != null) {
  446.                 idColumn.setVisible(true);
  447.                 UIManager.refreshInformationTable();
  448.             }
  449.         }
  450.  
  451.     }
  452.  
  453.     //    public void toActualContentVersion(ActionEvent ae) {
  454.     //        System.out.println(getClass() + ".toActualContentVersion");
  455.     //        Number actialIdContentVersion = (Number)ADFUtils.getBoundAttributeValue("ActualIdContentVer");
  456.     //        RichTable table =
  457.     //            (RichTable)FacesContext.getCurrentInstance().getViewRoot().findComponent("pc2:t3");
  458.     //        TableCriteriaManager.clearTableFilter(table,
  459.     //                                              "ContentComplexView1Query");
  460.     //        //            ADFUtils.findOperation("setActualCVRow").execute();
  461.     //        ADFUtils.findIterator(Iterators.CONTENT_COMPLEX).setCurrentRowWithKeyValue(actialIdContentVersion.toString());
  462.     //
  463.     //        //      AdfFacesContext.getCurrentInstance().addPartialTarget(table);
  464.     //        //            redrawContentTable();
  465.     //        //            return null;
  466.     //    }
  467.  
  468.     public void toContentSearchResult(DialogEvent de) {
  469.         if (de.getOutcome() == DialogEvent.Outcome.ok) {
  470.             //          DCIteratorBinding iter = Iterators.getIterator("GeneralSearch1Iterator");
  471.             Row row = Iterators.getIterator("GeneralSearch1Iterator").getCurrentRow();
  472.  
  473.             if (row != null) {
  474.                 //                **********************8
  475.                 //                boolean found = false;
  476.                 if (TableCriteriaManager.setKindInformationCurrentRow((Number)row.getAttribute("IdkInformation"))) {
  477.                     if (TableCriteriaManager.setInformationCurrentRow((DBSequence)row.getAttribute("IdInformation"))) {
  478.                         TableCriteriaManager.setContentComplexCurrentRow((DBSequence)row.getAttribute("IdContentVersion"));
  479.                     }
  480.                 }
  481.                 //
  482.                 //                if(!found) {
  483.                 //                    // Ne udalos' vypolnit' perehod
  484.                 //                    UIManager.showPopup("Не удалось выполнить переход");
  485.                 //                }
  486.                 //                **************************
  487.  
  488.  
  489.                 //                                if(new KindInformationRowSetter().setCurrentRow(row.getAttribute("IdkInformation"))) {
  490.                 //                                    if(new InformationRowSetter().setCurrentRow(row.getAttribute("IdInformation"))) {
  491.                 //                                        new ContentComplexRowSetter().setCurrentRow(row.getAttribute("IdContentVersion"));
  492.                 //                                    }
  493.                 //                                }
  494.                 //
  495.                 //                                if(!found) {
  496.                 //                                    // Ne udalos' vypolnit' perehod
  497.                 //                                    UIManager.showPopup("Не удалось выполнить переход");
  498.                 //                                }
  499.  
  500.  
  501.                 //                *****************************************************
  502.                 //
  503.                 //                try {
  504.                 //                    Iterators.getKindInformationIterator().setCurrentRowWithKeyValue(row.getAttribute("IdkInformation").toString());
  505.                 //
  506.                 //                    TableCriteriaManager.clearInformationTableFilter();
  507.                 //                    int rangeSize = Iterators.getInformationIterator().getRangeSize();
  508.                 //                    Iterators.getInformationIterator().setRangeSize(-1);
  509.                 //                    Iterators.getInformationIterator().setCurrentRowWithKeyValue(row.getAttribute("IdInformation").toString());
  510.                 //                    Iterators.getInformationIterator().setRangeSize(rangeSize);
  511.                 //
  512.                 //                    TableCriteriaManager.clearContentComplexTableFilter();
  513.                 //                    Iterators.getContentComplexIterator().setCurrentRowWithKeyValue(row.getAttribute("IdContentVersion").toString());
  514.                 //                } catch (Exception e) {
  515.                 //                    System.err.println("toContentSearchResult failed to IDK_INFORMATION " +
  516.                 //                                       row.getAttribute("IdkInformation") + ", ID_INFORMATION " +
  517.                 //                                       row.getAttribute("IdInformation") + ", ID_CONTENT)VERSION " +
  518.                 //                                       row.getAttribute("IdContentVersion"));
  519.                 //                    // Ne udalos' vypolnit' perehod
  520.                 //                    UIManager.showPopup("Не удалось выполнить переход");
  521.                 //                }
  522.  
  523.                 UIManager.refreshKindInformationTable();
  524.                 UIManager.refreshInformationTable();
  525.                 UIManager.refreshContentComplexPanelCollection();
  526.                 selectContentTab(null);
  527.             }
  528.         }
  529.     }
  530.  
  531.     public void switchInfStatus(ActionEvent actionEvent) {
  532.         ADFUtils.setBoundAttributeValue("UseSignInf1",
  533.                                         ADFUtils.getBoundAttributeValue("UseSignInf1").equals(new Number(1)) ?
  534.                                         new Number(0) : new Number(1));
  535.         ValueChangeEvent vae = new ValueChangeEvent(actionEvent.getComponent(), null, null);
  536.  
  537.         JSFUtils.resolveMethodExpression("#{Page1UIBean.commitValueChangeListener}", Class.class,
  538.                                          new Class[] { ValueChangeEvent.class }, new Object[] { vae });
  539.         UIManager.refreshInformationTable();
  540.         //Number
  541.     }
  542.  
  543.     //  public boolean isAllKindsContentCreated() {
  544.     //      Row[] rows = ADFUtils.findIterator("KindsContentTypesInfView1Iterator").getAllRowsInRange();
  545.     //      Set obligatoryRowSet = new HashSet();
  546.     //
  547.     //      for(Row row : rows) {
  548.     //          if(row.getAttribute("Obligatory") != null && ((Number)row.getAttribute("Obligatory")).intValue() == 1) {
  549.     //            obligatoryRowSet.add(row.getAttribute("IdkContent"));
  550.     //          }
  551.     //      }
  552.     //
  553.     //      Row[] contentRows = Iterators.getContentComplexIterator().getAllRowsInRange();
  554.     //      for(Row row : contentRows) {
  555.     //          if(obligatoryRowSet.contains(row.getAttribute("IdkContent"))) {
  556.     //            obligatoryRowSet.remove(row.getAttribute("IdkContent"));
  557.     //          }
  558.     //      }
  559.     //
  560.     //      return obligatoryRowSet.size() == 0;
  561.     //  }
  562.  
  563.     public void setKindContentBeforeCreate(ActionEvent actionEvent) {
  564.         Iterators.getIterator("KindsContentTypesInfView1Iterator").setCurrentRowWithKey((String)JSFUtils.resolveExpression("#{row.rowKeyStr}"));
  565.     }
  566.  
  567.     public void setContentDeletePopup(RichPopup contentDeletePopup) {
  568.         this.contentDeletePopup = contentDeletePopup;
  569.     }
  570.  
  571.     public RichPopup getContentDeletePopup() {
  572.         return contentDeletePopup;
  573.     }
  574.  
  575.     public void rtePreviewPopupFetchListener(PopupFetchEvent popupFetchEvent) {
  576.         //        ADFUtils.findIterator("LargeTextDataRestoredView1Iterator").executeQuery();
  577.         ADFUtils.findOperation("getRestoredText").execute();
  578.     }
  579.  
  580.     public void informationTableSelectionListener(SelectionEvent se) {
  581.         DCIteratorBinding ccIter = null;
  582.         Number idkContent = null;
  583.         boolean doPreserve = contentTab.isDisclosed();
  584.  
  585.         if (doPreserve) {
  586.             Long preserveKindContent = (Long)ADFContext.getCurrent().getSessionScope().get("preserveKindContent");
  587.             doPreserve = preserveKindContent == null || preserveKindContent.equals(1L);
  588.  
  589.             if (doPreserve) {
  590.                 try {
  591.                     ccIter = Iterators.getContentComplexIterator();
  592.                     Row ccRow = ccIter.getCurrentRow();
  593.  
  594.                     if (ccRow != null) {
  595.                         idkContent = (Number)ccRow.getAttribute("IdkContent");
  596.                     }
  597.                 } catch (Exception e) {
  598.                     e.printStackTrace();
  599.                     _logger.severe("Failed receiving ContentComplex kind content", e);
  600.                 }
  601.  
  602.             }
  603.  
  604.         }
  605.  
  606.         JSFUtils.resolveMethodExpression("#{bindings.InformationView1.collectionModel.makeCurrent}", null,
  607.                                          new Class[] { SelectionEvent.class }, new Object[] { se });
  608.  
  609.  
  610.         if (doPreserve) {
  611.             try {
  612.                 if (ccIter != null && idkContent != null) {
  613.                     Row[] rows = ccIter.getAllRowsInRange();
  614.                     if (rows.length > 1) {
  615.                         for (Row row : rows) {
  616.                             if (row.getAttribute("IdkContent").equals(idkContent)) {
  617.                                 TableCriteriaManager.setContentComplexCurrentRow(row.getKey());
  618.                                 break;
  619.                             }
  620.                         }
  621.                     }
  622.                 }
  623.             } catch (Exception e) {
  624.                 e.printStackTrace();
  625.                 _logger.severe("Failed restoring ContentComplex kind content", e);
  626.             }
  627.         }
  628.     }
  629.  
  630.     public void setContentTab(RichShowDetailItem contentTab) {
  631.         this.contentTab = contentTab;
  632.     }
  633.  
  634.     public RichShowDetailItem getContentTab() {
  635.         return contentTab;
  636.     }
  637.  
  638.     public String searchAction() {
  639.         System.out.print("searchAction");
  640.         String action = null;
  641.  
  642.         if (JSFUtils.resolveExpression("#{viewScope.searchQuery}") != null) {
  643.             action =
  644.                     (String)JSFUtils.resolveExpression("#{viewScope.searchSource == 1 ? 'search-inf' : 'search-content'}");
  645.         }
  646.         System.out.println(" = "+action);
  647.         return action;
  648.     }
  649.    
  650.     public String advancedSearchAction() {
  651.         return (String)JSFUtils.resolveExpression("#{viewScope.searchSource == 1 ? 'search-inf' : 'search-content'}");
  652.     }
  653.  
  654.     public void searchReturnListener(ReturnEvent returnEvent) {
  655.         String searchSourceString = (String)JSFUtils.resolveExpression("#{viewScope.searchSource}");
  656.         if (searchSourceString != null) {
  657.             Integer searchSource = Integer.parseInt(searchSourceString);
  658.  
  659.             switch (searchSource) {
  660.             case 1:
  661.                 {
  662.                     // information
  663.                     if (TableCriteriaManager.setKindInformationCurrentRow((Number)returnEvent.getReturnParameters().get("IdkInformationToGo"))) {
  664.                         if (TableCriteriaManager.setInformationCurrentRow((DBSequence)returnEvent.getReturnParameters().get("IdInformationToGo"))) {
  665.                             UIManager.refreshComponent("d1");
  666.                         } else {
  667.                             UIManager.refreshKindInformationTable();
  668.                         }
  669.                     }
  670.                     break;
  671.                 }
  672.             case 2:
  673.                 {
  674.                     // content
  675.                     if (TableCriteriaManager.setKindInformationCurrentRow((Number)returnEvent.getReturnParameters().get("IdkInformationToGo"))) {
  676.                         if (TableCriteriaManager.setInformationCurrentRow((Number)returnEvent.getReturnParameters().get("IdInformationToGo"))) {
  677.                             if (TableCriteriaManager.setContentComplexCurrentRow((DBSequence)returnEvent.getReturnParameters().get("IdContentVersionToGo"))) {
  678.                                 selectContentTab(null);
  679.                                 UIManager.refreshComponent("d1");
  680.                             } else {
  681.                                 UIManager.refreshKindInformationTable();
  682.                                 UIManager.refreshInformationTable();
  683.                             }
  684.                         } else {
  685.                             UIManager.refreshKindInformationTable();
  686.                         }
  687.                     }
  688.  
  689.                     break;
  690.                 }
  691.             }
  692.         }
  693.     }
  694.  
  695.     public void createInformation(ActionEvent ae) {
  696.         createInformation((Number)null);
  697.     }
  698.  
  699.     public void createInformationVersion(ActionEvent ae) {
  700.         createInformation((Number)ADFUtils.getBoundAttributeValue("IdIVersion"));
  701.     }
  702.  
  703.     private void createInformation(Number IdIVersion) {
  704.         OperationBinding createInf = ADFUtils.findOperation("CreateInformation");
  705.         createInf.getParamsMap().put("IdIVersion", IdIVersion);
  706.         createInf.execute();
  707.         ADFUtils.findOperation("Commit").execute();
  708.  
  709.         Key k = Iterators.getInformationIterator().getCurrentRow().getKey();
  710.  
  711.         ADFUtils.findOperation("ExecuteInformation").execute();
  712.  
  713.         TableCriteriaManager.setInformationCurrentRow(k);
  714.        
  715.         UIManager.notifyByKey("INFORMATION_CREATED");
  716.     }
  717.    
  718.     public void copyInformation(ActionEvent actionEvent) {
  719.         BindingContainer binding = BindingContext.getCurrent().getCurrentBindingsEntry();
  720.         OperationBinding copyInf = binding.getOperationBinding("copyInformation");
  721.         copyInf.execute();
  722.         if (copyInf.getErrors().isEmpty()) {
  723.             Integer newIdInformation = (Integer)copyInf.getResult();
  724.             DBSequence dbNewId = new DBSequence(newIdInformation);
  725.  
  726.             //Create a Key object
  727.             Key key = new Key(new Object[] { dbNewId });            
  728.             new InformationRowSetter().setCurrentRow(key);
  729.  
  730.             //refresh components on JSF Page
  731.             UIManager.refreshInformationTable(true, true);
  732.             UIManager.notifyByKey("INFORMATION_COPIED");
  733.         } else {
  734.             UIManager.showErrorPopupMessageKey("INFORMATION_COPY_ERROR");
  735.         }
  736.     }
  737.  
  738.     public void setInfPanelTabbed(RichPanelTabbed infPanelTabbed) {
  739.         this.infPanelTabbed = infPanelTabbed;
  740.     }
  741.  
  742.     public RichPanelTabbed getInfPanelTabbed() {
  743.         return infPanelTabbed;
  744.     }
  745. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement