計算機專業(yè)畢業(yè)論文外文翻譯7_第1頁
已閱讀1頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  附錄</b></p><p><b>  (英文翻譯)</b></p><p>  Rich Client Tutorial Part 1</p><p>  The Rich Client Platform (RCP) is an exciting new way to build Java

2、 applications that can compete with native applications on any platform. This tutorial is designed to get you started building RCP applications quickly. It has been updated for Eclipse 3.1.2</p><p>  By Ed B

3、urnette, SASJuly 28, 2004Updated for 3.1.2: February 6, 2006 </p><p>  Introduction</p><p>  Try this experiment: Show Eclipse to some friends or co-workers who haven't seen it before and

4、ask them to guess what language it is written in. Chances are, they'll guess VB, C++, or C#, because those languages are used most often for high quality client side applications. Then watch the look on their faces w

5、hen you tell them it was created in Java, especially if they are Java programmers.</p><p>  Because of its unique open source license, you can use the technologies that went into Eclipse to create your own c

6、ommercial quality programs. Before version 3.0, this was possible but difficult, especially when you wanted to heavily customize the menus, layouts, and other user interface elements. That was because the "IDE-ness&

7、quot; of Eclipse was hard-wired into it. Version 3.0 introduced the Rich Client Platform (RCP), which is basically a refactoring of the fundamental parts of Eclipse's UI, allo</p><p>  If you want to cut

8、 to the chase and look at the code for this part you can find it in the accompanying zip file. Otherwise, let's take a look at how to construct an RCP application.</p><p>  Getting started</p><

9、;p>  RCP applications are based on the familiar Eclipse plug-in architecture, (if it's not familiar to you, see the references section). Therefore, you'll need to create a plug-in to be your main program. Ecli

10、pse's Plug-in Development Environment (PDE) provides a number of wizards and editors that take some of the drudgery out of the process. PDE is included with the Eclipse SDK download so that is the package you should

11、be using. Here are the steps you should follow to get started.</p><p>  First, bring up Eclipse and select File > New > Project, then expand Plug-in Development and double-click Plug-in Project to brin

12、g up the Plug-in Project wizard. On the subsequent pages, enter a Project name such as org.eclipse.ui.tutorials.rcp.part1, indicate you want a Java project, select the version of Eclipse you're targeting (at least 3.

13、1), and enable the option to Create an OSGi bundle manifest. Then click Next >.</p><p>  Beginning in Eclipse 3.1 you will get best results by using the OSGi bundle manifest. In contrast to previous versi

14、ons, this is now the default.</p><p>  In the next page of the Wizard you can change the Plug-in ID and other parameters. Of particular importance is the question, "Would you like to create a rich clien

15、t application?". Select Yes. The generated plug-in class is optional but for this example just leave all the other options at their default values. Click Next > to continue.</p><p>  If you get a dia

16、log asking if Eclipse can switch to the Plug-in Development Perspective click Remember my decision and select Yes (this is optional).</p><p>  Starting with Eclipse 3.1, several templates have been provided

17、to make creating an RCP application a breeze. We'll use the simplest one available and see how it works. Make sure the option to Create a plug-in using one of the templates is enabled, then select the Hello RCP templ

18、ate. This is RCP's equivalent of "Hello, world". Click Finish to accept all the defaults and generate the project (see Figure 1). Eclipse will open the Plug-in Manifest Editor. The Plug-in Manifest editor p

19、uts a friendly</p><p>  Figure 1. The Hello World RCP project was created by a PDE wizard.</p><p>  Taking it for a spin</p><p>  Trying out RCP applications used to be somewhat ted

20、ious. You had to create a custom launch configuration, enter the right application name, and tweak the plug-ins that were included. Thankfully the PDE keeps track of all this now. All you have to do is click on the Launc

21、h an Eclipse Application button in the Plug-in Manifest editor's Overview page. You should see a bare-bones Workbench start up (see Figure 2).</p><p>  Figure 2. By using the templates you can be up and

22、running an RCP application in minutes.</p><p>  Making it a product</p><p>  In Eclipse terms a product is everything that goes with your application, including all the other plug-ins it depends

23、 on, a command to run the application (called the native launcher), and any branding (icons, etc.) that make your application distinctive. Although as we've just seen you can run a RCP application without defining a

24、product, having one makes it a whole lot easier to run the application outside of Eclipse. This is one of the major innovations that Eclipse 3.1 brought to RCP develop</p><p>  Some of the more complicated R

25、CP templates already come with a product defined, but the Hello RCP template does not so we'll have to make one.</p><p>  In order to create a product, the easiest way is to add a product configuration f

26、ile to the project. Right click on the plug-in project and select New > Product Configuration. Then enter a file name for this new configuration file, such as part1.product. Leave the other options at their default va

27、lues. Then click Finish. The Product Configuration editor will open. This editor lets you control exactly what makes up your product including all its plug-ins and branding elements.</p><p>  In the Overview

28、 page, select the New... button to create a new product extension. Type in or browse to the defining plug-in (org.eclipse.ui.tutorials.rcp.part1). Enter a Product ID such as product, and for the Product Application selec

29、t org.eclipse.ui.tutorials.rcp.part1.application. Click Finish to define the product. Back in the Overview page, type in a new Product Name, for example RCP Tutorial 1.</p><p>  In Eclipse 3.1.0 if you creat

30、e the product before filling in the Product Name you may see an error appear in the Problems view. The error will go away when you Synchronize (see below). This is a known bug that is fixed in newer versions. Always use

31、the latest available maintenance release for the version of Eclipse you're targeting!</p><p>  Now select the Configuration tab and click Add.... Select the plug-in you just created (org.eclipse.ui.tutor

32、ials.rcp.part1) and then click on Add Required Plug-ins. Then go back to the Overview page and press Ctrl+S or File > Save to save your work.</p><p>  If your application needs to reference plug-ins that

33、cannot be determined until run time (for example the tomcat plug-in), then add them manually in the Configuration tab.</p><p>  At this point you should test out the product to make sure it runs correctly. I

34、n the Testing section of the Overview page, click on Synchronize then click on Launch the product. If all goes well, the application should start up just like before.</p><p>  Plug-ins vs. features</p>

35、<p>  On the Overview page you may have noticed an option that says the product configuration is based on either plug-ins or features. The simplest kind of configuration is one based on plug-ins, so that's wha

36、t this tutorial uses. If your product needs automatic update or Java Web Start support, then eventually you should convert it to use features. But take my advice and get it working without them first.</p><p>

37、;  Running it outside of Eclipse</p><p>  The whole point of all this is to be able to deploy and run stand-alone applications without the user having to know anything about the Java and Eclipse code being u

38、sed under the covers. For a real application you may want to provide a self-contained executable generated by an install program like InstallShield or NSIS. That's really beyond the scope of this article though, so w

39、e'll do something simpler.</p><p>  The Eclipse plug-in loader expects things to be in a certain layout so we'll need to create a simplified version of the Eclipse install directory. This directory h

40、as to contain the native launcher program, config files, and all the plug-ins required by the product. Thankfully, we've given the PDE enough information that it can put all this together for us now.</p><p

41、>  In the Exporting section of the Product Configuration editor, click the link to Use the Eclipse Product export wizard. Set the root directory to something like RcpTutorial1. Then select the option to deploy into a

42、Directory, and enter a directory path to a temporary (scratch) area such as C:\Deploy. Check the option to Include source code if you're building an open source project. Press Finish to build and export the program.&

43、lt;/p><p>  The compiler options for source and class compatibility in the Eclipse Product export wizard will override any options you have specified on your project or global preferences. As part of the Export

44、 process, the plug-in is code is recompiled by an Ant script using these options.</p><p>  The application is now ready to run outside Eclipse. When you're done you should have a structure that looks lik

45、e this in your deployment directory:</p><p>  RcpTutorial1</p><p>  | .eclipseproduct</p><p>  | eclipse.exe</p><p>  | startup.jar</p><p>  +---

46、configuration</p><p>  | config.ini</p><p>  +--- plugins</p><p>  org.eclipse.core.commands_3.1.0.jar</p><p>  org.eclipse.core.expressions_3.1.0.jar</p>

47、<p>  org.eclipse.core.runtime_3.1.2.jar</p><p>  org.eclipse.help_3.1.0.jar</p><p>  org.eclipse.jface_3.1.1.jar</p><p>  org.eclipse.osgi_3.1.2.jar</p><p>  or

48、g.eclipse.swt.win32.win32.x86_3.1.2.jar</p><p>  org.eclipse.swt_3.1.0.jar</p><p>  org.eclipse.ui.tutorials.rcp.part1_1.0.0.jar</p><p>  org.eclipse.ui.workbench_3.1.2.jar</p>

49、;<p>  org.eclipse.ui_3.1.2.jar</p><p>  Note that all the plug-ins are deployed as jar files. This is the recommended format starting in Eclipse 3.1. Among other things this saves disk space in the d

50、eployed application.</p><p>  Previous versions of this tutorial recommended using a batch file or shell script to invoke your RCP program. It turns out this is a bad idea because you will not be able to ful

51、ly brand your application later on. For example, you won't be able to add a splash screen. Besides, the export wizard does not support the batch file approach so just stick with the native launcher.</p><p&

52、gt;  Give it a try! Execute the native launcher (eclipse or eclipse.exe by default) outside Eclipse and watch the application come up. The name of the launcher is controlled by branding options in the product configurati

53、on.</p><p>  Troubleshooting</p><p>  Error: Launching failed because the org.eclipse.osgi plug-in is not included... </p><p>  You can get this error when testing the product if yo

54、u've forgotten to list the plug-ins that make up the product. In the Product Configuration editor, select the Configuration tab, and add all your plug-ins plus all the ones they require as instructed above. </p>

55、;<p>  Compatibility and migration</p><p>  If you are migrating a plug-in from version 2.1 to version 3.1 there are number of issues covered in the on-line documentation that you need to be aware of.

56、 If you're making the smaller step from 3.0 to 3.1, the number of differences is much smaller. See the References section for more information.</p><p>  One word of advice: be careful not to duplicate an

57、y information in both plug-in.xml and MANIFEST.MF. Typically this would not occur unless you are converting an older plug-in that did not use MANIFEST.MF into one that does, and even then only if you are editing the file

58、s by hand instead of going through the PDE.</p><p>  Conclusion</p><p>  In part 1 of this tutorial, we looked at what is necessary to create a bare-bones Rich Client application. The next part

59、will delve into the classes created by the wizards such as the WorkbenchAdvisor class. All the sample code for this part may be found in the accompanying zip file.</p><p>  References</p><p>  R

60、CP Tutorial Part 2 RCP Tutorial Part 3 Eclipse Rich Client Platform RCP Browser example (project org.eclipse.ui.examples.rcp.browser) PDE Does Plug-ins How to Internationalize your Eclipse Plug-in Notes on the Ecli

61、pse Plug-in Architecture Plug-in Migration Guide: Migrating to 3.1 from 3.0 Plug-in Migration Guide: Migrating to 3.0 from 2.1</p><p><b>  譯文:</b></p><p>  Rich Client教程第一部分</p&

62、gt;<p>  The Rich Client Platform (RCP)是一種創(chuàng)建Java應(yīng)用程序的令人興奮的新方法,可以和任何平臺下的自帶應(yīng)用程序進行競爭。這個教程會使你較快學(xué)會創(chuàng)建RCP應(yīng)用程序,已更新到Eclipse 3.1.2版本</p><p>  作者: Ed Burnette, SAS</p><p>  July 28, 2004</p>

63、<p>  更新到3.1.2: February 6, 2006</p><p><b>  介紹</b></p><p>  試試這樣的試驗:展示Eclipse給一些以前從來沒有看見過它的朋友或同事,并讓他們猜測一下它是用什么語言編寫的。很大可能,他們會猜VB, C++, or C#,因為那些語言通常用于優(yōu)質(zhì)客戶端應(yīng)用程序。告訴他們這是用Java編制的,看

64、看他們的表情,尤其他們是java程序員的話。</p><p>  因為它獨一無二的開放源碼許可的緣故,你可以使用Eclipse生成你自己的商用的優(yōu)質(zhì)程序。在3.0以前的版本,這樣是可能的但是非常的麻煩,特別當(dāng)你想要著重個性化設(shè)計菜單,編排,以及其他的用戶接口部分。主要是由于Eclipse 的“集成電路設(shè)備”固化。3.0版本引入了the Rich Client Platform (RCP),主要基于Eclipse的

65、用戶界面基本部分進行了重新分解。3.1版本對RCP進行了一些新特性的更新,并且最重要的是,通過新工具的支持使它比以前更加容易創(chuàng)建。</p><p>  如果你想直接跳到重點,看這部分的代碼你可以在accompanying zip file.里找到。否則的話,讓我們看看怎樣構(gòu)建一個RCP。 </p><p><b>  開始</b></p><p&g

66、t;  RCP應(yīng)用程序是基于熟悉的Eclipse插件結(jié)構(gòu),(如果你對這部分不熟悉的話,請看參考書目部分)。因此,你將需要創(chuàng)建一個插件程序成為你的主程序。Eclipse的插件發(fā)展環(huán)境(PDE)提供大量的向?qū)Ш途庉嬈?,負?dān)了創(chuàng)建中的一些苦工。PDE包含在了你將使用的Eclipse SDK下載包里?,F(xiàn)在跟著一下步驟開始。</p><p>  首先,打開Eclipse,選擇File > New > Proje

67、ct,然后展開Plug-in Development,雙擊Plug-in Project來打開Plug-in Project 向?qū)?。在接下來的頁面上,輸入一個項目的名字,例如org.eclipse.ui.tutorials.rcp.part1,說明你想要一個Java 項目,選擇你需要的Eclipse版本,并且勾選Create an OSGi bundle manifest選項。然后單擊Next</p><p> 

68、 插圖一. PDE向?qū)?chuàng)建的The Hello World RCP 項目</p><p><b>  換一個角度理解</b></p><p>  試用RCP應(yīng)用程序通常有些單調(diào)乏味。你不得不生成一個定制的首次配置,輸入正確的應(yīng)用程序名稱,并且管理調(diào)整所有包含的插件。非常感激PDE現(xiàn)在保存所有這些記錄。你全部需要做的只是單擊Manifest編輯器總覽頁上的Eclipse

69、 應(yīng)用程序按鈕。你將看到一個簡單的工作臺頁面跳出來(見插圖二)。</p><p>  插圖二. 使用模板,你可以在幾分鐘之內(nèi)創(chuàng)建運行一個RCP應(yīng)用程序</p><p><b>  創(chuàng)建一個產(chǎn)品</b></p><p>  對于Eclipse來說,一個產(chǎn)品是你的應(yīng)用程序及所伴隨的所有相關(guān)設(shè)置,包括它依靠的所有其他插件,用來運行程序的命令(稱為自帶

70、的發(fā)射臺),和一些使你的產(chǎn)品與眾不同的商標(標記,等等)。雖然我們只在意你可以不需要定義一個產(chǎn)品來運行RCP應(yīng)用程序,使不依賴Eclipse而運行一個應(yīng)用程序更加輕松簡單。引入RCP開發(fā)這是Eclipse 3.1版本的主要創(chuàng)新。</p><p>  一些更加復(fù)雜的RCP模板已經(jīng)和產(chǎn)品一起定義了,但是Hello RCP 模板沒有帶,所以我們將需要定義一個。</p><p>  為了創(chuàng)建一個產(chǎn)

71、品,最簡單的方法是給項目增加一個產(chǎn)品配置文件,在plug-in項目上右鍵單擊,選擇New > Product Configuration。接下來,給這個這個新配置文件輸入一個文件名,例如part1.product。保留余下的選擇和默認值一致。</p><p>  然后單擊Finish。 產(chǎn)品配置編輯器將會打開。這個編輯器允許你嚴密的控制構(gòu)成你產(chǎn)品的所有plug-ins和商標元素</p><

72、;p>  在總覽頁面,選擇New... 按鈕來創(chuàng)建一個新的產(chǎn)品擴展名。輸入或者使用瀏覽方式找到定義的plug-in(org.eclipse.ui.tutorials.rcp.part1)。輸入一個產(chǎn)品ID, 例如product,對應(yīng)的產(chǎn)品應(yīng)用程序選擇org.eclipse.ui.tutorials.rcp.part1.application.。單擊Finish 來完成定義產(chǎn)品。回到總覽頁面,輸入一個新的產(chǎn)品名稱,比如RCP Tut

73、orial 1。</p><p>  在Eclipse 3.1.0版本,如果你在填入產(chǎn)品名稱之前創(chuàng)建一個產(chǎn)品,你可能會看見一個出錯信息出現(xiàn)在問題視窗。當(dāng)你同步的時候,出錯信息將會消失(見后面)。這是一個已知的缺陷,在后續(xù)版本作了修正??偸鞘褂米钚滦拚捎玫腅clipse版本</p><p>  現(xiàn)在選擇配置標簽,并且單擊Add…,選擇你前面所創(chuàng)建的插件程序(org.eclipse.ui.t

74、utorials.rcp.part1),然后單擊Add Required Plug-ins,回到總覽頁面,按住Ctrl+S,或者選擇File > Save來保存你的工作。</p><p>  如果你的應(yīng)用程序需要涉及的plug-ins直到運行的時候才能決定(例如:tomcat plug-in),那就在配置表標簽內(nèi)手動增加。</p><p>  到這個階段,你應(yīng)該測試產(chǎn)品確認它運行正常

75、。在總覽頁面的測試部分,單擊同步,然后單擊運行產(chǎn)品。如果一切順利,應(yīng)用程序窗口應(yīng)該像先前一樣跳出來。</p><p>  依賴插件還是依賴特性</p><p>  在總覽頁面,你可能注意到一個選項關(guān)于:產(chǎn)品的配置是基于插件或特性兩者任何一個。這種最簡單的配置是一種基于插件,這個教程所用的。如果你的產(chǎn)品需要自動升級或java網(wǎng)站的初始支持,那么最終你需要將它轉(zhuǎn)換成特性。但是請接受我的建議,先

76、在不使用特性情況下使它工作</p><p>  在Eclipse環(huán)境外運行</p><p>  最重要的觀點是:配置和運行一個獨立的應(yīng)用程序,不需要用戶知道任何封裝起來的Java 和 Eclipse代碼。對于一個真正的應(yīng)用程序,你可能想要提供通過安裝程序例如InstallShield 或者NSIS一個完整執(zhí)行包。這個遠遠超過了這篇文章的范圍,因此我們只作簡單介紹。</p>&

77、lt;p>  Eclipse插件導(dǎo)入裝置期望事件按某種規(guī)劃執(zhí)行,因此我們需要創(chuàng)建一個簡單版本的Eclipse 安裝目錄。這個目錄必須包含自帶的啟動程序,設(shè)置文件,和產(chǎn)品需要的全部插件。幸好,我們給予PDE足夠的信息,現(xiàn)在它可以為我們將這些組織起來。</p><p>  在產(chǎn)品配置編輯器的輸出部分,單擊使用Eclipse 輸出向?qū)У倪B接。設(shè)定根目錄類似RcpTutorial1。然后選擇展開目錄的選項,輸入一個

78、目錄路徑到一個臨時(草稿)區(qū)域比如C:\Deploy 。如果你建立了一個開放源碼項目,勾選包含源代碼選項。按Finish 來建立和輸出這個程序。</p><p>  在Eclipse產(chǎn)品輸出向?qū)е械脑创a和類兼容性編輯器選項可能會無視你在你的項目中特別指定的選項或全局參數(shù)。作為輸出進程的一部分,插件是被使用這些選項的Ant script重新編譯的代碼</p><p>  應(yīng)用程序現(xiàn)在可以在E

79、clipse 之外運行了。當(dāng)你完成的時候,在你的開發(fā)目錄里。你應(yīng)該有個看起來像下面這樣的結(jié)構(gòu):</p><p>  RcpTutorial1</p><p>  | .eclipseproduct</p><p>  | eclipse.exe</p><p>  | startup.jar</p><p

80、>  +--- configuration</p><p>  | config.ini</p><p>  +--- plugins</p><p>  org.eclipse.core.commands_3.1.0.jar</p><p>  org.eclipse.core.expressions_3.1.0.ja

81、r</p><p>  org.eclipse.core.runtime_3.1.2.jar</p><p>  org.eclipse.help_3.1.0.jar</p><p>  org.eclipse.jface_3.1.1.jar</p><p>  org.eclipse.osgi_3.1.2.jar</p>&l

82、t;p>  org.eclipse.swt.win32.win32.x86_3.1.2.jar</p><p>  org.eclipse.swt_3.1.0.jar</p><p>  org.eclipse.ui.tutorials.rcp.part1_1.0.0.jar</p><p>  org.eclipse.ui.workbench_3.1.2.j

83、ar</p><p>  org.eclipse.ui_3.1.2.jar</p><p>  所有的插件的擴展看起來像jar文件。這是一個在Eclipse 3.1版本里推薦的格式化開始。在配置程序里節(jié)省磁盤空間的方式之一。 </p><p>  這個教程的先前版本推薦使用一個批處理文件或外殼程序來調(diào)用你的RCP程序。它被證明是一個糟糕的主意,因為如果你隨后將不能在

84、你的應(yīng)用程序上打上完全屬于你的標記。比如,你將不能增加一個splash screen。此外,輸出向?qū)Р恢С峙幚砦募绞?,只是繼續(xù)自帶的初始程序。</p><p>  試試看!在Eclipse環(huán)境外,執(zhí)行自帶的初始程序(默認的eclipse 或 eclipse.exe ) ,看看應(yīng)用程序運行起來。初始程序的名字受到產(chǎn)品配置商標選項的約束。</p><p><b>  排除錯誤&l

85、t;/b></p><p>  錯誤:初始失敗,由于org.eclipse.osgi 插件沒有被包含... 當(dāng)測試產(chǎn)品的時候你忘記列出組成產(chǎn)品的插件,你將得到以上錯誤信息。在產(chǎn)品配置編輯器內(nèi),選擇配置標簽,增加你的所有插件并在插件中加上上面要求的部分。</p><p><b>  兼容性和移植性</b></p><p>  如果你將2.1

86、版本的plug-in 移植到3.1版本,在線文檔里涵蓋了一大堆你需要知道的問題。如果你僅僅是3.0到3.1一小步的話,差異的數(shù)量就小了很多。了解更多信息請見參考書目部分。</p><p>  一句忠告:小心不要在plug-in.xml 和 MANIFEST.MF兩個里復(fù)寫任何信息。正常地,這種情況是不會發(fā)生的,除非你將一個舊的plug-in轉(zhuǎn)換成目前需要用MANIFEST.MF的plug-in,甚至盡管你僅僅用手

87、工編輯那些文件而不是通過PDE 。</p><p><b>  結(jié)束</b></p><p>  在教程的第一部分,我們考慮創(chuàng)建一個Rich Client應(yīng)用程序的必要步驟。下一個部分將深入研究由向?qū)傻念?,比如工作臺類。這部分的例子代碼可以在附加的zip文件里找到。</p><p><b>  參考書目</b><

88、/p><p>  RCP Tutorial Part 2 RCP Tutorial Part 3 Eclipse Rich Client Platform RCP Browser example (project org.eclipse.ui.examples.rcp.browser) PDE Does Plug-ins How to Internationalize your Eclipse Plug-i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論