ComboBox શા માટે પૂરતું નથી
તમે બિઝનેસ એપ્લિકેશન્સ બનાવો છો. તમે વારંવાર સમાન સમસ્યાઓ ઉકેલો છો.
તમે કસ્ટમર સર્ચ બનાવો છો. તમે પ્રોડક્ટ ઓટોકમ્પ્લીટ ફીલ્ડ્સ બનાવો છો. તમે સિલેક્શન પોપઅપ્સ બનાવો છો.
મોટાભાગની UI લાઇબ્રેરીઓ આને અલગ અલગ વિજેટ્સ તરીકે ગણે છે. તેઓ તેને લુકઅપ્સ અથવા ઓટોકમ્પ્લીટ બોક્સ કહે છે. આ એક ભૂલ છે.
આ અલગ અલગ સમસ્યાઓ નથી. તે એક જ સમસ્યા છે. હું આ ખ્યાલને Locator કહું છું.
બિઝનેસ એપ્લિકેશન્સ રેફરન્સ (references) પર આધારિત હોય છે.
- એક સેલ્સ ઓર્ડર કસ્ટમરનો રેફરન્સ આપે છે.
- એક ઇન્વોઇસ સપ્લાયરનો રેફરન્સ આપે છે.
- એક ટ્રાન્ઝેક્શન પ્રોડક્ટનો રેફરન્સ આપે છે.
ડેટાબેઝ આને ID તરીકે સ્ટોર કરે છે. યુઝર્સ ID માં વિચારતા નથી. યુઝર્સ નામ, કોડ અથવા બારકોડમાં વિચારે છે.
વાસ્તવિક સમસ્યા એ નથી કે તમે ID કેવી રીતે સ્ટોર કરો છો. સમસ્યા એ છે કે યુઝર પોતાની જાણકારીનો ઉપયોગ કરીને સાચી એન્ટિટી (entity) કેવી રીતે શોધે છે.
ComboBox નાની યાદીઓ માટે કામ કરે છે. તેનો ઉપયોગ દેશો અથવા ચલણ (currencies) માટે કરો. આ યાદીઓમાં માત્ર થોડી ડઝન હરોળ હોય છે.
મોટા ડેટાસેટ્સ માટે ComboBox નિષ્ફળ જાય છે. તમે 1,00,000 કસ્ટમર્સમાંથી સ્ક્રોલ કરી શકતા નથી. આ સ્કેલ પર, તમે હવે યાદીમાંથી પસંદગી નથી કરી રહ્યા, પરંતુ તમે એક રેકોર્ડ શોધી રહ્યા છો.
Locator એ UI કંટ્રોલ નથી. તે એક વર્તન (behavior) છે.
Locator માત્ર કિંમત (value) આપવા કરતાં વધુ કામ કરે છે. તે બિઝનેસ રેફરન્સને ઉકેલે છે.
જ્યારે યુઝર પ્રોડક્ટ પસંદ કરે છે, ત્યારે એપને માત્ર ProductId ની જરૂર નથી હોતી. તેને યુનિટ પ્રાઇસની જરૂર હોય છે. તેને VAT રેટની જરૂર હોય છે. તેને માપના એકમ (unit of measure) ની જરૂર હોય છે.
Locator એક ચોક્કસ સંદર્ભ (context) માં રેફરન્સને ઉકેલીને આ બધું પૂરૂ પાડે છે.
UI બદલાઈ શકે છે:
- ડેસ્કટોપ પર, તે બે સર્ચેબલ ફીલ્ડ્સ જેવું દેખાય છે.
- ગ્રીડમાં, તે કસ્ટમ એડિટર જેવું દેખાય છે.
- મોબાઈલ પર, તે સર્ચ સ્ક્રીન જેવું દેખાય છે.
દેખાવ બદલાય છે, પરંતુ વર્તન સમાન રહે છે.
એક સારો Locator યુઝરનું સન્માન કરે છે. અનુભવી યુઝર્સ કીબોર્ડનો ઉપયોગ કરે છે. જો Locator ને કોઈ અનન્ય (unique) મેચ મળે, તો તેણે તરત જ સિલેક્શન પૂર્ણ કરી દેવું જોઈએ. જો એકથી વધુ મેચ હોય તો જ તેણે પસંદગી કરવા માટે પૂછવું જોઈએ.
સર્ચ, ઓટોકમ્પ્લીટ અને પોપઅપ્સને અસંબંધિત વિજેટ્સ તરીકે જોવાનું બંધ કરો. બિઝનેસ સોફ્ટવેર માટે Locator ને એક પાયાના ખ્યાલ તરીકે ઓળખો.
