diff --git a/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPanel.java b/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPanel.java index 582a114e8..a32b70f48 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPanel.java @@ -118,7 +118,14 @@ public OneToOneCallPanel( addCallPeerPanel(callPeer, uiVideoHandler); - setPreferredSize(new Dimension(400, 400)); + int preferredHeight = 400; + if(GuiActivator.getConfigurationService().getBoolean( + OneToOneCallPeerPanel.HIDE_PLACEHOLDER_PIC_PROP, + false)) + { + preferredHeight = 128; + } + setPreferredSize(new Dimension(400, preferredHeight)); setTransferHandler(new CallTransferHandler(call)); this.callContainer.addPropertyChangeListener( @@ -457,4 +464,4 @@ public void updateHoldButtonState() { callContainer.updateHoldButtonState(); } -} \ No newline at end of file +} diff --git a/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPeerPanel.java b/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPeerPanel.java index a0d9df77d..f90d0b2c9 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPeerPanel.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/OneToOneCallPeerPanel.java @@ -60,6 +60,13 @@ public class OneToOneCallPeerPanel */ private static final long serialVersionUID = 0L; + /** + * Property to disable showing the dummy picture for the peer when no + * streams present. + */ + public static final String HIDE_PLACEHOLDER_PIC_PROP + = "net.java.sip.communicator.impl.gui.main.call.HIDE_PLACEHOLDER_PIC_PROP"; + /** * The CallPeer, which is rendered in this panel. */ @@ -277,7 +284,15 @@ public OneToOneCallPeerPanel( detailsChangeListener); securityPanel = SecurityPanel.create(this, callPeer, null); - photoLabel = new JLabel(getPhotoLabelIcon()); + ImageIcon icon = getPhotoLabelIcon(); + if(icon != null) + { + photoLabel = new JLabel(icon); + } + else + { + photoLabel = new JLabel(); + } center = createCenter(); statusBar = createStatusBar(); @@ -345,6 +360,21 @@ public OneToOneCallPeerPanel( updateViewFromModel(); } + /** + * Set size of the {@link #photoLabel} + */ + private void sizePhotoLabel() + { + if(photoLabel.getIcon() != null) + { + photoLabel.setPreferredSize(new Dimension(90, 90)); + } + else + { + photoLabel.setPreferredSize(new Dimension(0, 0)); + } + } + /** * Creates the Component hierarchy of the central area of this * CallPeerPanel which displays the photo of the CallPeer @@ -352,7 +382,7 @@ public OneToOneCallPeerPanel( */ private VideoContainer createCenter() { - photoLabel.setPreferredSize(new Dimension(90, 90)); + sizePhotoLabel(); return createVideoContainer(photoLabel); } @@ -584,6 +614,22 @@ public String getPeerName() return peerName; } + /** + * Tests a provided boolean property name, returning false if it should be + * hidden. + * + * @param componentHidePropertyName the name of the boolean property to + * check. + * @return false if the component should be hidden, true otherwise. + * + */ + private boolean isComponentEnabled(String componentHidePropertyName) + { + return !GuiActivator.getConfigurationService().getBoolean( + componentHidePropertyName, + false); + } + /** * Gets the Icon to be displayed in {@link #photoLabel}. * @@ -592,7 +638,7 @@ public String getPeerName() private ImageIcon getPhotoLabelIcon() { return - (peerImage == null) + (peerImage == null && isComponentEnabled(HIDE_PLACEHOLDER_PIC_PROP)) ? new ImageIcon( ImageLoader.getImage(ImageLoader.DEFAULT_USER_PHOTO)) : peerImage; @@ -677,10 +723,18 @@ public void loadSkin() if(peerImage == null) { - photoLabel.setIcon( - new ImageIcon( - ImageLoader.getImage( - ImageLoader.DEFAULT_USER_PHOTO))); + if(isComponentEnabled(HIDE_PLACEHOLDER_PIC_PROP)) + { + photoLabel.setIcon( + new ImageIcon( + ImageLoader.getImage( + ImageLoader.DEFAULT_USER_PHOTO))); + } + else + { + photoLabel.setIcon(null); + } + sizePhotoLabel(); } } @@ -1108,6 +1162,7 @@ public void setPeerImage(byte[] image) public void run() { photoLabel.setIcon(peerImage); + sizePhotoLabel(); photoLabel.repaint(); } }); @@ -1115,6 +1170,7 @@ public void run() else { photoLabel.setIcon(peerImage); + sizePhotoLabel(); photoLabel.repaint(); } } @@ -1582,4 +1638,4 @@ public void setInterested(boolean value) this.interested = value; } } -} \ No newline at end of file +}