Eclipse RCP - Buka Tampilan di Area Editor (hybrid 3.8 / e4)


106

Saya sedang mengerjakan hibrid 3.8-e4 (yaitu kami memiliki dependensi Luna, tetapi kami belum menggunakan Application.e4xmi ). Jadi pada dasarnya kami menjalankan lapisan kompak.

Dengan itu, alangkah baiknya menemukan cara terprogram e4 untuk menumpuk tampilan buruk ini ke folder editor.


1.) Masalah

Saya ingin menempatkan folder tampilan umum di area editor, sehingga setiap tampilan yang dibuka saat runtime akan dibuka di sana.

Lihat di folder editor

(foto dicuri dari pertanyaan ini )


2.1) Kemungkinan perbaikan no.1: Menggunakan plugin.xml

Buat ekstensi perspektif, dan tambahkan setiap tampilan yang memungkinkan ke ekstensi itu, dengan tumpukan hubungan di atas org.eclipse.ui.editorss relatif . Ini agak merepotkan jika Anda memiliki terlalu banyak tampilan yang tidak bisa dibuka, dan jika proyek berskala cepat. Saya juga memperhatikan bahwa ID tampilan karakter pengganti tidak berfungsi di sini.

SS dari plugin.xml dengan ekstensi perspektif

Jika Anda menemukan diri Anda memiliki waktu untuk menambahkan setiap tampilan yang memungkinkan ke perluasan perspektif, itu akan berhasil. Meskipun, JIKA Anda membuka tampilan yang tidak ditambahkan di sini (yaitu: terbuka di folder berbeda), maka setiap tampilan berikutnya yang dibuka akan dibuka di folder sebelumnya, dan BUKAN di area editor (tanyakan penjelasan lebih lanjut jika Anda tidak mengerti).


2.2) Kemungkinan perbaikan no.2: Menggunakan kode di pabrik perspektif

Di IPerspectiveFactory, kami memiliki akses ke IPageLayout, yang kebetulanorg.eclipse.ui.internal.e4.compatibility.ModeledPageLayout (e4 stuff).

Sekarang, ModeledPageLayoutimplementasi ini masuk akal, tetapi juga tidak ada dokumentasi dan API publik yang aneh. Yang ini memberikan kemungkinan untuk menumpuk pandangan terhadap kerabat lainnya

modeledPageLayout.stackView("newView0", IPageLayout.ID_EDITOR_AREA);

Ini akan menjadi versi programatik dari 2.1 . Selain itu, masalah yang sama muncul di sini. Jika tampilan dibuka di tempat lain, kode di atas menjadi tidak berguna.

Cukup menarik, stackViewAPI tidak mendukung karakter pengganti (sementara yang lain seperti addViewlakukan).


2.3) Kemungkinan perbaikan no.3: Penyelesaian yaaay!

Saya memiliki banyak perspektif, dan banyak folder berbeda di masing-masing. Semuanya ditempatkan dengan tepat.

Karena Eclipse menawarkan API untuk mendapatkan semua ID tampilan dari mana saja di seluruh sistem, saya ingin melakukan hal berikut, per perspektif: setiap ID tampilan yang tidak ditambahkan ke folder tertentu akan ditambahkan ke area editor (yaitu folder editor , tumpukan editor) .

Ini akan menjadi pilihan terakhir saya, kecuali seseorang menawarkan solusi yang lebih nyaman dan hemat waktu.

Ingat, alternatif programatik e4 lebih fleksibel!


3.) Pertanyaan terkait

Ini akan dianggap tidak berlaku lagi untuk rilis e4.


4.) Bug Terkait di Bugzilla Eclipse:

Bug baru-baru ini yang saya buka sendiri memiliki lampiran dengan SSCCE kecil. Langkah-langkah untuk mereproduksi ini dijelaskan dalam komentar ini , jadi saya tidak akan menyalin dan menempelkannya di sini.


Saya pikir sangat tidak mungkin hal ini dapat dilakukan ketika kode kompatibilitas 3.x disertakan. Anda mungkin dapat menempatkan tampilan di area editor menggunakan API e4 tetapi saya berharap itu akan membingungkan kode kompatibilitas.
greg-449

1
Jika Anda tidak menggunakan editor apa pun, minimalkan area bersama dan rancang tata letak sesuai keinginan Anda.
bebbo

maju ke versi yang lebih baru di mana ini berfungsi di luar kotak.
bebbo

@bebbo Saya memang menggunakan editor, dan saya tidak bisa memindahkan semuanya ke e4 sekaligus. Perangkat lunak perusahaan. :-)
GGrec

Jawaban:


1

Saya sarankan Anda menggunakan Kemungkinan perbaikan no.3, karena saya pikir tidak ada metode yang lebih cepat untuk melakukan ini.


saran apapun dengan jawaban pripr bisa ditulis sebagai komentar dan bukan jawaban baru.
Mahalakshmi
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.