Re: CSS navigation menu & autolink

2008-11-13 Thread Pierre Goiffon

No answers...

The question is how to make automatic linking have an effect on the A 
tag and its container LI tag, knowing that both of them are part of a 
custom wicket component.


Anyone ?


[EMAIL PROTECTED] wrote:

Hello all,

I'm really new in the object world in general and using Wicket 
particularly, so please excuse if I'm missing something... I've 
googled around but maybe I didn't use the good keywords.



So here's my question !

I'm building a navigation menu for my web application. There are 3 
different levels, the higher one is linking to different Wicket pages. 
My top level menu is html coded like this :



Menu Item 1
Menu Item 2
Menu Item 3


Notice the class="current" on the selected page.

I've already created the following code (see below), but was wondering 
if there are any means to use the Wicket autolink feature ? It would 
be far more simplier... The difficulty I see is to modify the  tag 
on the selected link ? Thanks for advices !




// LayoutAuthenticated.html
...

Libellé menu1

...



// LayoutAuthenticated.java

protected MenuItem menu1aOpt1;
protected MenuItem menu1aOpt2;
protected MenuItem menu1aOpt3;

public LayoutAuthenticated() {
...
List menu1aList = new ArrayList();
menu1aList.add(menu1aOpt1 = new MenuItem("menu1aItem", true, 
"menu1a.Opt1", Opt1.class));
menu1aList.add(menu1aOpt2 = new MenuItem("menu1aItem", true, 
"menu1a.Opt2", Opt2.class));
menu1aList.add(menu1aOpt3 = new MenuItem("menu1aItem", true, 
"menu1a.Opt3", Opt3.class));

add(new ListView("menu1a", menu1aList) {
@Override
protected void populateItem(ListItem item) {
item.add(item.getModelObject());
}
});
...
}



// MenuItem.html


/>





// MenuItem.java

private String keyLabel;
private Class lienClass;
private WebMarkupContainer menuItem;
private BookmarkablePageLinkWithoutDisabledMarkup link;

public MenuItem(String wicketId, boolean isActive, String 
keyLabel, Class lienClass) {

super(wicketId);

setLienClass(lienClass);
setKeyLabel(keyLabel);

setRenderBodyOnly(true);
add(menuItem = new WebMarkupContainer("menuItem"));
menuItem.add(link = new 
BookmarkablePageLinkWithoutDisabledMarkup("link", lienClass));

Label label;
link.add(label = new Label("label", new 
ResourceModel(keyLabel)));

label.setRenderBodyOnly(true);
}

public void setLienClass(Class lienClass) {
this.lienClass = lienClass;
}

public void setKeyLabel(String keyLabel) {
this.keyLabel = keyLabel;
}

public void setActive() {
menuItem.add(new SimpleAttributeModifier("class",""));
link.setEnabled(true);
}

public void setInActive() {
menuItem.add(new SimpleAttributeModifier("class","current"));
link.setEnabled(false);
}



// BookmarkablePageLinkWithoutDisabledMarkup.java
// (just to keep my  tag on selected links)

public  
BookmarkablePageLinkWithoutDisabledMarkup(String id,

Class pageClass) {
super(id, pageClass);
}

@Override
protected void disableLink(ComponentTag tag) {
tag.remove("href");
}



// Opt1.java

public class Opt1 extends LayoutAuthenticated {
public Opt1() {
menu1aOpt1.setInActive();
}
}



// Opt2.java

public class Opt2 extends LayoutAuthenticated {
public Opt2() {
menu1aOpt2.setInActive();
}
}



// Opt3.java

public class Opt3 extends LayoutAuthenticated {
public Opt3() {
menu1aOpt3.setInActive();
}
}



// Wicket application init()
// (don't need the default  tags around the selected link label)

...
getMarkupSettings().setDefaultBeforeDisabledLink("");
getMarkupSettings().setDefaultAfterDisabledLink("");
...


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



CSS navigation menu & autolink

2008-11-10 Thread pgoiffon . wicket

Hello all,

I'm really new in the object world in general and using Wicket  
particularly, so please excuse if I'm missing something... I've  
googled around but maybe I didn't use the good keywords.



So here's my question !

I'm building a navigation menu for my web application. There are 3  
different levels, the higher one is linking to different Wicket pages.  
My top level menu is html coded like this :



Menu Item 1
Menu Item 2
Menu Item 3


Notice the class="current" on the selected page.

I've already created the following code (see below), but was wondering  
if there are any means to use the Wicket autolink feature ? It would  
be far more simplier... The difficulty I see is to modify the  tag  
on the selected link ? Thanks for advices !




// LayoutAuthenticated.html
...

Libellé menu1

...



// LayoutAuthenticated.java

protected MenuItem menu1aOpt1;
protected MenuItem menu1aOpt2;
protected MenuItem menu1aOpt3;

public LayoutAuthenticated() {
...
List menu1aList = new ArrayList();
		menu1aList.add(menu1aOpt1 = new MenuItem("menu1aItem", true,  
"menu1a.Opt1", Opt1.class));
		menu1aList.add(menu1aOpt2 = new MenuItem("menu1aItem", true,  
"menu1a.Opt2", Opt2.class));
		menu1aList.add(menu1aOpt3 = new MenuItem("menu1aItem", true,  
"menu1a.Opt3", Opt3.class));

add(new ListView("menu1a", menu1aList) {
@Override
protected void populateItem(ListItem item) {
item.add(item.getModelObject());
}
});
...
}



// MenuItem.html


/>





// MenuItem.java

private String keyLabel;
private Class lienClass;
private WebMarkupContainer menuItem;
private BookmarkablePageLinkWithoutDisabledMarkup link;

	public MenuItem(String wicketId, boolean isActive, String keyLabel,  
Class lienClass) {

super(wicketId);

setLienClass(lienClass);
setKeyLabel(keyLabel);

setRenderBodyOnly(true);
add(menuItem = new WebMarkupContainer("menuItem"));
		menuItem.add(link = new  
BookmarkablePageLinkWithoutDisabledMarkup("link", lienClass));

Label label;
link.add(label = new Label("label", new 
ResourceModel(keyLabel)));
label.setRenderBodyOnly(true);
}

public void setLienClass(Class lienClass) {
this.lienClass = lienClass;
}

public void setKeyLabel(String keyLabel) {
this.keyLabel = keyLabel;
}

public void setActive() {
menuItem.add(new SimpleAttributeModifier("class",""));
link.setEnabled(true);
}

public void setInActive() {
menuItem.add(new SimpleAttributeModifier("class","current"));
link.setEnabled(false);
}



// BookmarkablePageLinkWithoutDisabledMarkup.java
// (just to keep my  tag on selected links)

public  
BookmarkablePageLinkWithoutDisabledMarkup(String id,
Class pageClass) {
super(id, pageClass);
}

@Override
protected void disableLink(ComponentTag tag) {
tag.remove("href");
}



// Opt1.java

public class Opt1 extends LayoutAuthenticated {
public Opt1() {
menu1aOpt1.setInActive();
}
}



// Opt2.java

public class Opt2 extends LayoutAuthenticated {
public Opt2() {
menu1aOpt2.setInActive();
}
}



// Opt3.java

public class Opt3 extends LayoutAuthenticated {
public Opt3() {
menu1aOpt3.setInActive();
}
}



// Wicket application init()
// (don't need the default  tags around the selected link label)

...
getMarkupSettings().setDefaultBeforeDisabledLink("");
getMarkupSettings().setDefaultAfterDisabledLink("");
...


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]