2017-05-15 9 views
1

私はドメインオブジェクトCustomerを持っているとしましょう。このオブジェクトには、外部サイトへのアドレスがあります。Apache ISIS外部リンク

@PropertyLayout(named = "Link", describedAs = "Clickable link to customer") 
public String getLink() { 
    return "http://www.customer.com"; 
} 

この場合、これはウェブページ上にテキストとして表示されます。これからウィジェットビューアでクリック可能なリンクを作成するにはどうすればよいですか?

答えて

2

サードパーティの拡張機能があります。https://github.com/kev-m/isis-wicket-url/ これは私たちのコミッターの一人であるKevin Meyerによって行われました。

私はhttps://issues.apache.org/jira/browse/ISIS-1616をこれをフレームワーク「proper」に組み込むように呼び上げました。

その間、あなたは

@Action(semantics=SemanticsOf.SAFE) 
@MemberOrder(named="link", sequence="1") 
public java.net.URL openLink() throws MalformedURLException { 
    return new java.net.URL(getLink()); 
} 

簡単に十分なリンクを開くためのアクションを追加することができますし、それを仕上げるために、あなたがこのガードを追加することができます。

public String disableOpenLink() { 
    if(getLink() == null) { return "no link to open."; } 
    try { 
     openLink(); 
    } catch(MalformedURLException ex) { 
     return "Bad link"; 
    } 
    return null; 
} 
1

Apache Isisには、この問題の解決策はありません。 独自のWicketコンポーネントをロールする必要があります。たとえば、カスタムアノテーション@ExternalLinkでこのプロパティに注釈を付け、このプロパティのWicket ExternalLinkコンポーネントを作成するComponentFactoryを登録します。例えば、https://github.com/isisaddons/isis-wicket-summernote/blob/master/cpt/src/main/java/META-INF/services/org.apache.isis.viewer.wicket.ui.ComponentFactoryを参照してください。

関連する問題