Çoğu Düzenleyici eklentisi için iletişim kutuları ve kenar çubuğu panelleri, birincil eklenti kullanıcı arayüzleridir. Her ikisi de standart HTML ve CSS kullanılarak tamamen özelleştirilebilir. Ayrıca, kullanıcı kenar çubuğu veya iletişim kutusuyla etkileşime girdiğinde Apps Komut Dosyası işlevlerini çalıştırmak için Apps Komut Dosyası'nın istemci-sunucu iletişim modelini kullanabilirsiniz. Eklentiniz birden fazla kenar çubuğu ve iletişim kutusu tanımlayabilir ancak eklenti, aynı anda yalnızca birini gösterebilir.
Kullanıcının eklenti arayüzünde bir seçim yapana kadar düzenleyiciyle etkileşimde bulunmasını engellemek istediğinizde iletişim kutusu, aksi takdirde kenar çubuğu kullanın.
İletişim kutuları
İletişim kutuları, ana düzenleyici içeriğinin üzerinde yer alan pencere panelleridir. Apps Komut Dosyası iletişim kutuları modaldır. Açık oldukları sürece kullanıcı, düzenleyici arayüzünün diğer öğeleriyle etkileşimde bulunamaz. İletişim kutularının içeriğini ve boyutunu özelleştirebilirsiniz.
Eklenti iletişim kutularını Apps Komut Dosyası özel iletişim kutularıyla aynı şekilde oluşturursunuz. Genel olarak önerilen prosedür şöyledir:
- İletişim kutunuzun HTML yapısını, CSS'sini ve istemci tarafı JavaScript davranışını tanımlayan bir komut dosyası proje dosyası oluşturun. İletişim kutusunu tanımlarken Düzenleyici eklentisi stil kurallarına bakın.
- İletişim kutusunun açılmasını istediğiniz sunucu tarafı kodunuzda, iletişim kutusunu temsil eden bir
HtmlOutput
nesnesi oluşturmak içinHtmlService.createHtmlOutputFromFile(filename)
işlevini çağırın. Alternatif olarak, şablonlu HTML kullanıyorsanızHtmlService.createTemplateFromFile(filename)
işlevini çağırarak şablon oluşturabilir ve ardındanHtmlTemplate.evaluate()
işlevini çağırarak şablonuHtmlOutput
nesnesine dönüştürebilirsiniz. - İletişim kutusunu
Ui.showModalDialog(htmlOutput, dialogTitle)
kullanarak görüntülemek içinHtmlOutput
çağrısı yapın.
İletişim kutuları açıkken sunucu tarafı komut dosyası askıya alınmaz. İstemci tarafı JavaScript, google.script.run()
ve ilişkili işleyici işlevlerini kullanarak sunucu tarafına eşzamansız çağrılar yapabilir. Daha fazla bilgi için İstemci-sunucu iletişimi başlıklı makaleyi inceleyin.
Dosya açma iletişim kutuları
Dosya açma iletişim kutuları, kullanıcılarınızın Google Drive'larından dosya seçmesine olanak tanıyan önceden oluşturulmuş iletişim kutularıdır. Eklentinize, tasarlamanıza gerek kalmadan dosya açma iletişim kutusu ekleyebilirsiniz ancak bunun için bazı ek yapılandırmalar gerekir. Google Seçici API'yi etkinleştirmek için eklentinin Cloud Platform projesine de erişmeniz gerekir.
Tüm ayrıntılar için Dosya açma iletişim kutuları başlıklı makaleyi inceleyin.
Kenar çubukları
Kenar çubukları, düzenleyici arayüzünün sağ tarafında görünen panellerdir ve en yaygın eklenti arayüzü türüdür. İletişim kutularının aksine, bir kenar çubuğu açıkken düzenleyici arayüzünün diğer öğeleriyle etkileşime devam edebilirsiniz. Kenar çubuklarının genişliği sabittir ancak içeriklerini özelleştirebilirsiniz.
Eklenti kenar çubuklarını Apps Komut Dosyası özel kenar çubuklarıyla aynı şekilde oluşturursunuz. Genel olarak önerilen prosedür şöyledir:
- Kenar çubuğunuzun HTML yapısını, CSS'sini ve istemci tarafı JavaScript davranışını tanımlayan bir komut dosyası proje dosyası oluşturun. Kenar çubuğunu tanımlarken Editor eklentisi stil kurallarına bakın.
Kenar çubuğunun açılmasını istediğiniz sunucu tarafı kodunuzda, kenar çubuğunu temsil eden bir
HtmlOutput
nesnesi oluşturmak içinHtmlService.createHtmlOutputFromFile(filename)
çağrısı yapın. Alternatif olarak, şablonlu HTML kullanıyorsanızHtmlService.createTemplateFromFile(filename)
işlevini çağırarak şablon oluşturabilir ve ardındanHtmlTemplate.evaluate()
işlevini çağırarak şablonuHtmlOutput
nesnesine dönüştürebilirsiniz.Ui.showSidebar(htmlOutput)
tuşuna basarakHtmlOutput
kullanarak kenar çubuğunu görüntüleyin.
Kenar çubukları açıkken sunucu tarafı komut dosyası askıya alınmaz. İstemci tarafı JavaScript, google.script.run()
ve ilişkili işleyici işlevlerini kullanarak sunucu tarafına eşzamansız çağrılar yapabilir. Daha fazla bilgi için İstemci-sunucu iletişimi başlıklı makaleyi inceleyin.