/**
* Copyright (C) 2015 Valkyrie RCP
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.valkyriercp.application.support;
import org.jdesktop.swingx.JXTitledPanel;
import org.valkyriercp.application.PageComponent;
import org.valkyriercp.application.PageComponentPane;
import org.valkyriercp.factory.AbstractControlFactory;
import javax.swing.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
public class JXPageComponentPane extends AbstractControlFactory implements PageComponentPane {
private PageComponent component;
private PropertyChangeListener updater = new PropertyChangeListener() {
public void propertyChange( PropertyChangeEvent evt ) {
handleViewPropertyChange();
}
};
public JXPageComponentPane( PageComponent component ) {
this.component = component;
this.component.addPropertyChangeListener( updater );
}
public PageComponent getPageComponent() {
return component;
}
protected JComponent createControl() {
JXTitledPanel panel = new JXTitledPanel(component.getDisplayName(), component.getControl());
return panel;
}
protected JToolBar createViewToolBar() {
// todo
return null;
}
public void propertyChange( PropertyChangeEvent evt ) {
handleViewPropertyChange();
}
protected void handleViewPropertyChange() {
JXTitledPanel frame = (JXTitledPanel) getControl();
frame.setTitle( component.getDisplayName() );
frame.setToolTipText( component.getCaption() );
}
}