การใช้ ProjectCenter และ Gorm สร้าง GNUstep Application.

ตอนแรกให้เรียก ProjectCenter ขึ้นมาก่อน โดย สั่ง openapp ProjectCenter ที่ command prompt




โปรแกรมก็จะถูกเรียกขึ้นมาตามรูป ก็สั่ง Project->New เลือกสร้าง project เป็น Gorm Application





ใส่ชื่อ project ลงไป อันนี้ก็แล้วแต่ศรัทธานะ





เราก็จะได้หน้าต่าง project ของเรามา ให้เลือกไปตรง Interfaces แล้วเลือก model file ในที่นี้ก็คือ MyFirstGNUstepApp.gorm





double click ลงไป มันก็จะไปเรียก Gorm ขึ้นมาแก้ไขเป็นตามรูปที่เห็นนี่ จะมี instance object ต่างๆที่ถูกเตรียมไว้ให้แล้ว เช่น menu หน้าต่าง รวมถึง palette เก็บพวก interface ต่างๆ





ก็ลากมา drop ใน My Window และก็ปรับขนาดหน้าต่าง วางปุ่ม ตกแต่ง แก้ text ตามชอบ



รูปนี้ให้ดูเส้นแดงๆ ไว้ช่วยกะระยะเวลาปรับ layout ไม่ใช่ด้ายแดงผูกมือใคร ไม่ต้องตกใจ






จากนั้นให้เราเลือกตรง Classes แล้วเลือก NSObject เพื่อสร้าง controller class ยังจำ MVC model กันได้นะ (Model/View/Controller ถ้าไม่รู้ก็ไปหาอ่านเอาเอง ไม่ได้ซับซ้อนอะไร) ให้เราสั่ง Classes->Create Subclass มันก็จะสร้าง NewClass มาให้ ก็ให้ double click เพื่อเปลี่ยนชื่อเป็น MyController หรือจะ Jenny Debby อะไรก็สุดแต่ใจ



สร้างเสร็จ ก็ไปดูตรงหน้าต่าง Inspector ให้เราสร้าง (Add) outlets สำหรับต่อเชื่อมกับ ปุ่ม (myButton) และ ช่องข้อความ (myTextField) ซึ่ง outlets นี่ก็จะกลายเป็นสมาชิกของ class MyController ของเรา




เสร็จแล้วก็ไปเลือกตรง tab Actions ซึ่งเราจะเตรียมไว้ เพื่อให้สำหรับรับ message จากปุ่มเมื่อมันถูกกด






มันจะมี : หลัง gotPush: ก็เก็บไว้ก็ได้ หรือจะไม่เก็บก็ได้ เวลาปุ่มมันส่ง message มาบอกว่าถูกกด มันจะบอกด้วยว่ามันเป็นปุ่มไหน ถ้าเรามีหลายๆปุ่มเราก็จะได้รู้ได้ว่าปุ่มไหนที่ถูกกด






พอเราสร้าง class เสร็จแล้วก็ให้สร้าง instance ด้วยการสั่ง Classes->Instantiate






Instance object ของ class MyController ก็จะปรากฎขึ้นใน object browser ดังรูป




ทีนี้ก็เป็นการโยงความสัมพันธ์ โดยไป Control-click ที่ instance ของ MyController ที่เราสร้างขึ้น แล้วโยงไปหาปุ่มในหน้าต่าง My Window ที่เราเตรียมไว้แล้ว






ใน Inspector ของ MyController ก็จะให้เราเลือกว่าจะเชื่อมต่อ (connect) ปุ่มนั้น กับ outlet ตัวไหน ก็ให้เลือก myButton เสร็จแล้วก็ทำให้ครบ ทั้งปุ่มและช่องข้อความ




พอ connect ทั้งสองตัวแล้วมันก็จะมาขึ้นตรง Connections ตามรูปข้างบนนี้





เสร็จแล้วให้ทำกลับกัน คราวนี้ control-click ลากจากปุ่ม มาที่ instance ของ MyController






เพื่อที่จะบอกปุ่ม ว่าถ้ามีการ click ให้ส่ง message อะไร ไปบอก object ไหน ก็ให้ connect กับ message gotPush:





เสร็จแล้วก็ไปเลือก MyController แล้วสั่ง Create Class Files มันก็จะสร้าง แฟ้ม MyController.m และ .h





save source file ตามรูป นี่เป็นการสร้าง source code สำหรับ class MyController เฉยๆนะ
หลังจากนี้ก็ให้เราสั่ง save Gorm model ที่เราทำไว้ข้างบน แล้วก็ Quit ไปเลยก็ได้ การ save ใน Gorm นี่ จริงๆแล้วก็คือการ serialize object ที่เราเพิ่งสร้างขึ้นมา เพื่อให้โปรแกรมสามารถเรียกขึ้นมาใช้ได้ใหม่ ซึ่งจะไม่เหมือนกับระบบ design GUI บางแบบที่เน้นเก็บข้อมูลเป็น format ของตัวเอง จะ XML หรืออะไรก็ตาม ซึ่งต่างจากใน GNUstep ที่ระบบ design GUI จะใช้รวมกับระบบ object archive ไปเลย เจ๋งจริงๆ






กลับไปที่ ProjectCenter ให้เราเพิ่ม file เข้ากลุ่ม Classes โดยเลือก MyController.m ที่เราสร้างด้วย Gorm ซึ่งมันจะถามว่า
เอา .h ด้วยหรือเปล่า ก็ตอบไปว่าเอาด้วย






ไปแก้ code ใน MyController.m หน่อย ว่าถ้าได้รับ message gotPush: มา จะให้ทำอะไรบ้าง เราก็ให้ MyController บอก myTextField (ซึ่งถูกโยงความสัมพันธ์ไว้แล้วด้วย Gorm) ว่าให้แสดงค่าวันที่ พร้อมทั้งพิมพ์ log ว่า got a push ตามรูป





save file ที่ได้แก้ไข แล้ว เข้า mode build ด้วยปุ่มไขควง ด้านบน แล้วสั่ง build มันก็จะ compile ของมันไป




เสร็จแล้ว เรียกขึ้นมาทำงานตรงรูปจรวด ก็ กดๆไป จนกว่าจะสาแก่ใจ

จบ.

เอกสารนี้ใช้ FDL ตามต้นฉบับที่ลอกมาอีกที แต่อันนั้นมันของ Cocoa