Project

General

Profile

BrowseWidget.diff

Stanislav Lomany, 10/11/2017 10:04 AM

Download (3.44 KB)

View differences:

3275c/src/com/goldencode/p2j/ui/BrowseWidget.java 2017-10-11 12:38:09.404395066 +0300
415 415
      }
416 416
      
417 417
      config.readOnly = r.booleanValue();
418
      config.editPossible = calcEditPossible();
419
      if (!config.readOnly)
420
      {
421
         updateEditors();
422
      }
423

  
418 424
      pushScreenDefinition();
419 425
   }
420 426
   
......
2039 2105
      
2040 2106
      initMaxDataGuess();
2041 2107

  
2042
      // Set editPossible value.
2043
      final logical editPossible =  new logical(false);
2044
      for (BrowseColumnWidget column : columns)
2045
      {
2046
         if (!column.isReadOnly().booleanValue())
2047
         {
2048
            editPossible.assign(true);
2049
            break;
2050
         }
2051
      }
2052

  
2053
      ConfigManager.syncConfigChanges(new Runnable()
2108
      ConfigManager.syncConfigChanges(() ->
2054 2109
      {
2055
         @Override
2056
         public void run()
2057
         {
2058
            config.editPossible = editPossible.booleanValue();
2059
            config.queryAssigned = true;
2060
         }
2110
         config.editPossible = calcEditPossible();
2111
         config.queryAssigned = true;
2061 2112
      });
2062 2113

  
2063 2114
      // Create widgets for editing.
2064
      int size = columns.size();
2065
      for (int i = 0; i < size; i++)
2066
      {
2067
         BrowseColumnConfig columnConfig = columns.get(i).config;
2068
         if (!columnConfig.readOnly)
2069
         {
2070
            GenericWidget editor;
2071
            if (TOGGLE_BOX.equals(columnConfig.widgetType))
2072
            {
2073
               editor = new ToggleBoxWidget(true);
2074
            }
2075
            else
2076
            {
2077
               editor = new FillInWidget(true);
2078
            }
2079
            //TODO combo-box
2080

  
2081
            editor.setId(WidgetId.nextID().asInt());
2082
            editor.setDataType(columnConfig.dataType);
2083

  
2084
            ConfigManager.getInstance().addWidgetConfig(editor.config);
2085
            LogicalTerminal.registerWidget(editor, editor.getId());
2086
            columns.get(i).setEditor(editor);
2087
         }
2088
      }
2089

  
2115
      updateEditors();
2090 2116
      pushScreenDefinition();
2091 2117
   }
2092 2118
   
......
5825 5858
      return columns.iterator();
5826 5859
   }
5827 5860

  
5861
   boolean calcEditPossible()
5862
   {
5863
      if (isReadOnly().booleanValue())
5864
      {
5865
         return false;
5866
      }
5867

  
5868
      for (BrowseColumnWidget column : columns)
5869
      {
5870
         if (!column.isReadOnly().booleanValue())
5871
         {
5872
            return true;
5873
         }
5874
      }
5875

  
5876
      return false;
5877
   }
5878

  
5879
   void updateEditors()
5880
   {
5881
      for (BrowseColumnWidget column : columns)
5882
      {
5883
         BrowseColumnConfig columnConfig = column.config;
5884
         if (!columnConfig.readOnly && column.getEditor() == null)
5885
         {
5886
            GenericWidget editor;
5887
            if (TOGGLE_BOX.equals(columnConfig.widgetType))
5888
            {
5889
               editor = new ToggleBoxWidget(true);
5890
            }
5891
            else
5892
            {
5893
               editor = new FillInWidget(true);
5894
            }
5895
            //TODO combo-box
5896

  
5897
            editor.setId(WidgetId.nextID().asInt());
5898
            editor.setDataType(columnConfig.dataType);
5899
            editor.setValidation(column.getValidationExpression(), column.getValidationMessage());
5900

  
5901
            ConfigManager.getInstance().addWidgetConfig(editor.config);
5902
            LogicalTerminal.registerWidget(editor, editor.getId());
5903
            column.setEditor(editor);
5904
         }
5905
      }
5906
   }
5907

  
5828 5908
   /**
5829 5909
    * Finish the config processing for this browse.
5830 5910
    * <p>