2013-01-06 56 views
5

Cách căn chỉnh văn bản từ phải sang trái (p: editor) theo mặc định.Trình chỉnh sửa PrimeFaces

Hiện đang sử dụng các nguyên tố 3.0.M2-SNAPSHOT. Không thể cập nhật lên phiên bản mới hơn ngay bây giờ?

Điều này là bắt buộc đối với phiên bản tiếng Ả Rập của ứng dụng.

Cảm ơn

Trả lời

3

thêm một mục trong web.xml như

<context-param> 
    <param-name>primefaces.DIR</param-name> 
    <param-value>RTL</param-value> 
</context-param> 

và sau đó theo mặc định bất kỳ thành phần primefaces sẽ làm cho văn bản từ phải sang trái

REF: http://blog.primefaces.org/?p=2283

+1

Yêu cầu của tôi chỉ dành cho các thành phần chứ không phải trên toàn bộ phạm vi. – techie2k

2

Không phải tất cả các thành phần PrimeFaces đều có thuộc tính "dir" và vì bạn không sử dụng phiên bản 3.5, bạn không thể sử dụng phạm vi ứng dụng DIR ter. Vì vậy, về cơ bản, bạn có hai lựa chọn:

  • Áp dụng lớp CSS khéo léo cho thành phần không có thuộc tính DIR. Một cái gì đó như

    .rtlclass { float: right; /* vv */ }

    hoặc

tài sản dirClass được giá trị của nó phụ thuộc vào quan điểm miền địa phương. Nếu tiếng Ả Rập, sau đó getter trả về "rtlClass", nếu không "ltrCLass".

Nếu tình cờ thành phần PrimeFaces có thuộc tính DIR, trong một bean viết một cái gì đó như:

public class FacesBean { 

private String direction = ""; 

public FacesBean(){} 

// Getter & setter 

public String getDirection() { 
     if (FacesContext.getCurrentInstance().getViewRoot().getLocale() 
       .getLanguage() == "ar") { 
      direction = "RTL"; 
     } else { 
      direction = "LTR"; 
     } 
     return direction; 
    } 

} 

và trong file xhtml của bạn:

<p:component dir="#{facesBean.direction}" ..... /> 
0

Tôi đã làm điều này theo một cách xấu, nhưng nó làm việc cho tôi:

<h:form id="form"> 
    <p:editor id="content"/> 
    <script type="text/javascript" > 
      jQuery(document).ready(function() { 
       var myDiv = document.createElement('div'); 
       myDiv.align = 'right'; 
       var myBr = document.createElement('br'); 
       myDiv.appendChild(myBr); 
       jQuery('#form\\:content').find('iframe').contents().find('body').append(myDiv); 
      }); 
     </script> 
</h:form> 
Các vấn đề liên quan