classdef LoginDialog
properties
main_fig;
m_login_btn;
m_login_dropDown;
m_login_chk;
m_serverIp_txt;
m_serverUsr_txt;
m_serverpw_txt;
m_serverIp_lbl;
m_serverUsr_lbl;
m_serverpw_lbl;
m_logins;
m_test;
end
methods
function obj = LoginDialog()
obj.main_fig = uifigure;
obj.main_fig.Resize = 0;
obj.m_login_btn = uibutton(obj.main_fig);
obj.m_login_btn.Text = "Login";
obj.m_login_btn.Position = [obj.main_fig.Position(3)/2 - obj.m_login_btn.Position(3) / 2,...
20,100,20];
obj.m_login_btn.ButtonPushedFcn = @obj.loginCallback;
obj.m_login_dropDown = uidropdown(obj.main_fig);
obj.m_login_dropDown.Position = [obj.main_fig.Position(3)-obj.m_login_dropDown.Position(3),...
obj.main_fig.Position(4)-obj.m_login_dropDown.Position(4),100,20];
obj.m_login_dropDown.Items = cell(1,0);
obj.m_login_dropDown.Visible = 0;
obj.m_serverIp_lbl = uilabel(obj.main_fig);
obj.m_serverIp_lbl.Text = "Server Ip:";
obj.m_serverIp_lbl.Position = [obj.main_fig.Position(3)/2 - obj.m_login_btn.Position(3) / 2 - 60,...
150,100,20];
obj.m_serverIp_txt = uieditfield(obj.main_fig);
obj.m_serverIp_txt.Position = [obj.main_fig.Position(3)/2 - obj.m_login_btn.Position(3) / 2,...
150,100,20];
obj.m_serverUsr_lbl = uilabel(obj.main_fig);
obj.m_serverUsr_lbl.Text = "Username:";
obj.m_serverUsr_lbl.Position = [obj.main_fig.Position(3)/2 - obj.m_login_btn.Position(3) / 2 - 60,...
125,100,20];
obj.m_serverUsr_txt = uieditfield(obj.main_fig);
obj.m_serverUsr_txt.Position = [obj.main_fig.Position(3)/2 - obj.m_login_btn.Position(3) / 2,...
125,100,20];
obj.m_serverpw_lbl = uilabel(obj.main_fig);
obj.m_serverpw_lbl.Text = "Password:";
obj.m_serverpw_lbl.Position = [obj.main_fig.Position(3)/2 - obj.m_login_btn.Position(3) / 2 - 60,...
100,100,20];
obj.m_serverpw_txt = uieditfield(obj.main_fig);
obj.m_serverpw_txt.Position = [obj.main_fig.Position(3)/2 - obj.m_login_btn.Position(3) / 2,...
100,100,20];
obj.m_login_chk = uicheckbox(obj.main_fig);
obj.m_login_chk.Text = "Use existing login";
obj.m_login_chk.Position = [obj.m_login_dropDown.Position(1) - obj.m_login_chk.Position(3)*1.5,obj.m_login_dropDown.Position(2)-5,120,30];
obj.m_login_chk.ValueChangedFcn = @(cbx,event) cBoxChanged(obj,obj.m_login_chk);
if(exist('savedLogins.mat','file') ~= 0)
obj.m_logins = load('savedLogins');
if(~isempty(obj.m_logins.m_savedLogins))
identifiers = obj.m_logins.m_savedLogins{:,1};
obj.m_login_dropDown.Items = identifiers;
end
end
obj.m_test = 33;
end
function obj = cBoxChanged(obj,cbx)
val = cbx.Value;
if (val == 1)
obj.m_login_dropDown.Visible = 'on';
obj.m_serverIp_txt.Enable = 0;
obj.m_serverUsr_txt.Enable = 0;
obj.m_serverpw_txt.Enable = 0;
else
obj.m_login_dropDown.Visible = 'off';
obj.m_serverIp_txt.Enable = 1;
obj.m_serverUsr_txt.Enable = 1;
obj.m_serverpw_txt.Enable = 1;
end
end
function lastLogins = getLastLogin(obj)
if(exist('savedLogins.mat','file') ~= 0)
obj.m_logins = load('savedLogins');
lastLogins = obj.m_logins;
end
end
function [ip,usr,pw] = loginCallback(obj,src,~)
end
end
end