function VennDashboard()

fig = uifigure('Position',[0 0 600 530],'Scrollable','on');


M = InitializeMatrix("#FFFFFF");


SpecialInt = '1';

% RADIO BUTTONS


%---- RADIO bUTTON group
%-----Its primarypurpose is to assign a routine to
%-----run the NoSoapRadio routine anytime
%-----a new radio button is selected.
%-----Notice rgp passes off this capability to all
%-----RADIO BUTTONS in the rgp group

rbg = uibuttongroup(fig,...
'Position',[5 425 590 100],...
"SelectionChangedFcn",@NoSoapRadio); %----->Line 262

%---- RADIO bUTTON label
rlbll = uilabel(rbg,'Position', [190 79 150 20],...
'Text','Visibility Control','FontSize',16,...
'HorizontalAlignment','center') 


% RADIO BUTTONS

rb1 = uiradiobutton(rbg,'Position',[100 54 150 15],...
'Text','1 Three Circles','Tag', 'r1');

rb1 = uiradiobutton(rbg,'Position',[100 54 150 15],...
'Text','1 Three Circles','Tag', 'r1');

rb2 = uiradiobutton(rbg,'Position',[100 32 91 15],...
'Text','2 Inverses','Tag', 'r2');

rb3 = uiradiobutton(rbg,'Position',[100 4 150 15],...
'Text','3 Distributive Law','Tag', 'r3');

rb4 = uiradiobutton(rbg,'Position',[230 54 170 15],...
'Text','4 De Morgan Theorem I','Tag', 'r4');

rb5 = uiradiobutton(rbg,'Position',[230 32 170 15],...
'Text','5 De Morgan Theorem II','Tag', 'r5');
% END OF THE RADIO BUTTON GROUPING

%----------------------------PALETTE ----------------- 
% COLOR group
bg = uibuttongroup(fig,...
"SelectionChangedFcn",@displaySelection, ...
"Position",[ 202 250 200 170]);

% COLOR Label 
lbll = uilabel(bg,'Position', [67 140 80 20],'Text','Palette',...
'FontSize', 16, 'FontName','Lucida Handwriting',...
'HorizontalAlignment','center',...
'FontColor',"#FF0000");

% 24 COLORS WHICH ALSO TRIGGER THE BUTTON PUSHED ROUTINE
btn1 = uibutton(bg,...
'Position', [10 108 25 20],...
'BackgroundColor', "#CD5C5C",...
'Tag',"#CD5C5C", 'Text',"", 'ButtonPushedFcn', @PushMe);%-----> Line 234

btn2 = uibutton(bg, ...
'Position', [40 108 25 20],...
'BackgroundColor', "#4DBEEE",...
'Tag',"#4DBEEE", 'Text',"", 'ButtonPushedFcn', @PushMe);

btn3 = uibutton(bg, ...
"Position",[70 108 25 20],...
'BackgroundColor', "#9FE2BF",...
'Tag',"#9FE2BF", 'Text',"", 'ButtonPushedFcn', @PushMe);

btn4 = uibutton(bg,...
'Position', [100 108 25 20],...
'BackgroundColor', "#4DBEEE",...
'Tag',"#4DBEEE", 'Text',"", 'ButtonPushedFcn', @PushMe);

btn5 = uibutton(bg, ...
'Position', [130 108 25 20],...
'BackgroundColor', "#6495ED",...
'Tag',"#6495ED", 'Text',"", 'ButtonPushedFcn', @PushMe);

btn6 = uibutton(bg, ...
"Position",[160 108 25 20],...
'BackgroundColor', "#00FF00",...
'Tag',"#00FF00", 'Text',"", 'ButtonPushedFcn', @PushMe);
%--------------------Completes Row 1 
btn7 = uibutton(bg,...
'Position', [10 80 25 20],...
'BackgroundColor', "#FF55FF",...
'Tag',"#FF55FF", 'Text',"", 'ButtonPushedFcn', @PushMe);

btn8 = uibutton(bg, ...
'Position', [40 80 25 20],...
'BackgroundColor', "#C8F188",...
'Tag',"#C8F188", 'Text',"", 'ButtonPushedFcn', @PushMe);

btn9 = uibutton(bg, ...
"Position",[70 80 25 20],...
'BackgroundColor', "#00FFFF",...
'Tag',"#00FFFF", 'Text',"", 'ButtonPushedFcn', @PushMe);

btn10 = uibutton(bg,...
'Position', [100 80 25 20],...
'BackgroundColor', "#FFEB3B",...
'Tag',"#FFEB3B", 'Text',"", 'ButtonPushedFcn', @PushMe);

btn11 = uibutton(bg, ...
'Position', [130 80 25 20],...
'BackgroundColor', "#9900FF",...
'Tag',"#9900FF", 'Text',"", 'ButtonPushedFcn', @PushMe);

btn12 = uibutton(bg, ...
"Position",[160 80 25 20],...
'BackgroundColor', "#FF99CC",...
'Tag',"#FF99CC", 'Text',"", 'ButtonPushedFcn', @PushMe);
%--------------------Completes Row 2 
btn13 = uibutton(bg,...
'Position', [10 50 25 20],...
'BackgroundColor', "#FFFF33",...
'Tag',"#FFFF33", 'Text',"", 'ButtonPushedFcn', @PushMe);

btn14 = uibutton(bg, ...
'Position', [40 50 25 20],...
'BackgroundColor', "#FF00FF",...
'Tag',"#FF00FF", 'Text',"", 'ButtonPushedFcn', @PushMe);

btn15 = uibutton(bg, ...
"Position",[70 50 25 20],...
'BackgroundColor', "#33FF33",...
'Tag',"#33FF33", 'Text',"", 'ButtonPushedFcn', @PushMe);

btn16 = uibutton(bg,...
'Position', [100 50 25 20],...
'BackgroundColor', "#FFB7C5",...
'Tag',"#FFB7C5", 'Text',"", 'ButtonPushedFcn', @PushMe);

btn17 = uibutton(bg, ...
'Position', [130 50 25 20],...
'BackgroundColor', "#C5FFB7",...
'Tag',"#C5FFB7", 'Text',"", 'ButtonPushedFcn', @PushMe);

btn18 = uibutton(bg, ...
"Position",[160 50 25 20],...
'BackgroundColor', "#8141FF",...
'Tag',"#8141FF", 'Text',"", 'ButtonPushedFcn', @PushMe);
%--------------------Completes R03 3 
btn19 = uibutton(bg,...
'Position', [10 26 25 20],...
'BackgroundColor', "#FF9E56",...
'Tag',"#FF9E56", 'Text',"", 'ButtonPushedFcn', @PushMe);

btn20 = uibutton(bg, ...
'Position', [40 26 25 20],...
'BackgroundColor', "#F2DC23",...
'Tag',"#F2DC23", 'Text',"", 'ButtonPushedFcn', @PushMe);

btn21 = uibutton(bg, ...
"Position",[70 26 25 20],...
'BackgroundColor', "#16E2F5",...
'Tag',"#16E2F5", 'Text',"", 'ButtonPushedFcn', @PushMe);

btn22 = uibutton(bg,...
'Position', [100 26 25 20],...
'BackgroundColor', "#FF6347",...
'Tag',"#FF6347", 'Text',"", 'ButtonPushedFcn', @PushMe);

btn23 = uibutton(bg, ...
'Position', [130 26 25 20],...
'BackgroundColor', "#F9966B",...
'Tag',"#F9966B", 'Text','', 'ButtonPushedFcn', @PushMe);

btn24 = uibutton(bg, ...
'Position',[160 26 25 20],...
'BackgroundColor', "#CB6D51",...
'Tag',"#CB6D51", 'Text',"", 'ButtonPushedFcn', @PushMe);
%-----------------END OF THE PALETTE ----------------- 

%------------VENN DIAGRAM 
Intersect3Circs = uipanel(fig,...
'Position',[9,250 190 170]);

% SELECTIONS ALLOWED DISPLAY
%---------------------------------------------x y L W
qlabel = uilabel(Intersect3Circs,'Position', [8 150 180 20],'Text',...
'Allow Multiple Selections',...
'FontSize', 16, 'FontName','Calibri',...
'FontColor',"#000000", 'HorizontalAlignment', 'center');

% THIS IS THE DROPDOWN SELECTION MENU FOR ALL RADIO BUTTONS
     lbox = uilistbox(Intersect3Circs,...  
          'Position',[50 40 75 100],...s
           'Multiselect','on',... 
         'Items',{'abc','ab~c','a~bc', '~abc','~ab~c','a~b~c','~a~bc',...
             '~(a+b+c)'},...
              'ValueChangedFcn', @updateEditField);  
      
     % THIS I THE TEXT AREA WHERE THE OBJECT IS SELECTEDf FROM DRO
     % DOWN MENU IS PLACED
      txt = uitextarea(Intersect3Circs,...
         'Position',[50 10 75 20],...
         'Value','~(a+b+c)');
     
     %-------VENN DASHBOARD   
         bvd = uibutton(fig,'Position',[10 200 82 40]);
         %NOTE THAT POSITION 1 & 2 ARE x,y COORDINATES, 
         % 3 & 4 ARE WIDTH AND %HEIGHT
         bvd.Text = "Venn Diagram"
         bvd.ButtonPushedFcn =  @CreateBareVenn;     
         
     
      %=============CALLBACKS=========================
         function CreateBareVenn(src,event) 
        BareBonesVenn();
       end
     %-----------------------------------------------
      function updateEditField(src,event) 
         txt.Value = src.Value;
         end
     %-----------------------------------------------
     %  KEEP THIS SUCKER!
         function displaySelection(src,event)
        disp(['Previous: ' event.OldValue.Text]);
        disp(['Current: ' event.NewValue.Text]);
     end
     %-----------------------------------------------
     function PushMe(src,event)
          a = string(src.Tag);     %Color
          b = string(txt.Value);  %String
     
         c = rbg.SelectedObject;
      
          carrot = char(SpecialInt);
          switch carrot
              case '1'
                  M = InitializeMatrix("#FFFFFF");
                  eatery = SetMatrixColor(M,b,a);
                  Color3Circles(eatery);
              case '2'
                  M = InitializeMatrix("#33FF33");
                  eatery = SetMatrixColor(M,b,a);
                  Color3Circles(eatery);
         
              case '3'
                  M = InitializeMatrix("#FFFFFF");
                  eatery = SetMatrixColorToDistribute(M,b,a);
                  Color3Circles(eatery); 
              case '4' 
                  ColorMorganOne(b,a)
              case '5' 
                  ColorMorganTwo(b,a)
          end %  END SWITHCH
     end
     %-----------------------------------------------
         function NoSoapRadio(src, event) %  RADIO BUTTONs 
        oldval = string(event.OldValue.Text);
        newval = string(event.NewValue.Text);
      
        str = char(newval);
        y = str(1);
        SpecialInt = str(1);
     str(1) = '1';
        switch SpecialInt
            case '1'  %Three Circles
             set(lbox,'Multiselect', "on");
             qlabel.Text = "1 Three Circles";
             set(lbox,'Items',{'abc','ab~c','a~bc','~abc','~ab~c',...
                'a~b~c','~a~bc','~(a+b+c)'});
             txt.Value = '~(a+b+c)';
            case '2'  % Inverses
                set(lbox,'Multiselect', "off");
                qlabel.Text = "2 Inverses";
                set(lbox,'Items',{'abc','ab~c','a~bc','~abc','~ab~c',...
                'a~b~c','~a~bc','~(a+b+c)'});
               %  set(lbox,'Items',{'abc','ab~c','~abc','a~bc','ab~c',...
               % 'a~b~c','~ab~c','~a~bc','~(a+b+c)',...
               % '~ab','a~b','ac','a~c','bc','b~c'});
               txt.Value = '~ab~c';
     
            case '3'  % Distribution Law
                 set(lbox,'Multiselect', "off");
                  qlabel.Text = "3 Distribution Law";
                   set(lbox,'Items',{'a','b','c','ab','ac','bc'});
                   txt.Value = 'bc';
            case '4'  % DeMorgan !
                 set(lbox,'Multiselect', "off");
                 qlabel.Text = "4 DeMorgan Law I";
                 set(lbox,'Items',{'~(a+b)','~a~b'})
                 txt.Value = '~(a+b)';
            case '5' % Demorgan 2
                 set(lbox,'Multiselect', "off");
                 qlabel.Text = "4 DeMorgan Law II";
                 set(lbox,'Items',{'~(ab)','~a+~b'});
                 txt.Value = '~(ab)';         
        end %SWITCH
         end   %  END OF NoSoapRadio FUNCTION
     %======= END OF CALLBACKS=========================
       
     end %END OF ENTIRE PROGRAM
     
     

