/* Copyright 2009 Tonny Kohar. * * 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.qi4j.envisage.detail; import java.awt.*; import java.util.ResourceBundle; import javax.swing.*; import org.qi4j.api.service.ImportedServiceDescriptor; import org.qi4j.api.service.ServiceImporter; import org.qi4j.tools.model.descriptor.ImportedServiceDetailDescriptor; /** * Implementation of ImportedService imported by */ public class ImportedByPane extends DetailPane { private JPanel contentPane; private JLabel nameLabel; private JLabel classLabel; public ImportedByPane( DetailModelPane detailModelPane ) { super( detailModelPane ); this.setLayout( new BorderLayout() ); this.add( contentPane, BorderLayout.CENTER ); } @Override public void setDescriptor( Object objectDesciptor ) { clear(); if( !( objectDesciptor instanceof ImportedServiceDetailDescriptor ) ) { return; } ImportedServiceDetailDescriptor detailDescriptor = (ImportedServiceDetailDescriptor) objectDesciptor; ImportedServiceDescriptor descriptor = detailDescriptor.descriptor().importedService(); Class<? extends ServiceImporter> importer = descriptor.serviceImporter(); nameLabel.setText( importer.getSimpleName() ); classLabel.setText( importer.toString() ); } private void clear() { nameLabel.setText( null ); classLabel.setText( null ); } { // GUI initializer generated by IntelliJ IDEA GUI Designer // >>> IMPORTANT!! <<< // DO NOT EDIT OR ADD ANY CODE HERE! $$$setupUI$$$(); } /** * Method generated by IntelliJ IDEA GUI Designer * >>> IMPORTANT!! <<< * DO NOT edit this method OR call it in your code! * */ private void $$$setupUI$$$() { contentPane = new JPanel(); contentPane.setLayout( new GridBagLayout() ); final JLabel label1 = new JLabel(); this.$$$loadLabelText$$$( label1, ResourceBundle.getBundle( "org/qi4j/envisage/detail/ImportedByPane" ).getString( "CTL_Name.Text" ) ); GridBagConstraints gbc; gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 1; gbc.anchor = GridBagConstraints.WEST; contentPane.add( label1, gbc ); final JPanel spacer1 = new JPanel(); gbc = new GridBagConstraints(); gbc.gridx = 1; gbc.gridy = 1; gbc.fill = GridBagConstraints.HORIZONTAL; contentPane.add( spacer1, gbc ); final JPanel spacer2 = new JPanel(); gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 2; gbc.fill = GridBagConstraints.VERTICAL; contentPane.add( spacer2, gbc ); nameLabel = new JLabel(); nameLabel.setText( "Label" ); gbc = new GridBagConstraints(); gbc.gridx = 2; gbc.gridy = 1; gbc.anchor = GridBagConstraints.WEST; contentPane.add( nameLabel, gbc ); final JLabel label2 = new JLabel(); this.$$$loadLabelText$$$( label2, ResourceBundle.getBundle( "org/qi4j/envisage/detail/ImportedByPane" ).getString( "CTL_Class.Text" ) ); gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 3; gbc.anchor = GridBagConstraints.WEST; contentPane.add( label2, gbc ); classLabel = new JLabel(); classLabel.setText( "Label" ); gbc = new GridBagConstraints(); gbc.gridx = 2; gbc.gridy = 3; gbc.weightx = 1.0; gbc.anchor = GridBagConstraints.WEST; contentPane.add( classLabel, gbc ); final JPanel spacer3 = new JPanel(); gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 4; gbc.weighty = 1.0; gbc.fill = GridBagConstraints.VERTICAL; contentPane.add( spacer3, gbc ); final JPanel spacer4 = new JPanel(); gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 0; gbc.fill = GridBagConstraints.VERTICAL; contentPane.add( spacer4, gbc ); } private void $$$loadLabelText$$$( JLabel component, String text ) { StringBuffer result = new StringBuffer(); boolean haveMnemonic = false; char mnemonic = '\0'; int mnemonicIndex = -1; for( int i = 0; i < text.length(); i++ ) { if( text.charAt( i ) == '&' ) { i++; if( i == text.length() ) { break; } if( !haveMnemonic && text.charAt( i ) != '&' ) { haveMnemonic = true; mnemonic = text.charAt( i ); mnemonicIndex = result.length(); } } result.append( text.charAt( i ) ); } component.setText( result.toString() ); if( haveMnemonic ) { component.setDisplayedMnemonic( mnemonic ); component.setDisplayedMnemonicIndex( mnemonicIndex ); } } public JComponent $$$getRootComponent$$$() { return contentPane; } }