Hello,

I have implemented iframe and can view documents. Unfortunately, only in the 
class
MyPdfResource hard-coded filename (example: private string filename = 
"test.pdf";) can be displayed.
The files can not be refreshed. I hope someone can help me.

greetings, Mehmet

HTML:
<div wicket:id="mypdf" border="1" width="900px" height="400px"></div>

++++++++++++++++++++++++++++++ class DocEditPage 
+++++++++++++++++++++++++++++++++++++++++++++++++++++
public class DocEditPage extends MainTemplate
{

        private byte[] file;
        private String fileName;
        private String contentType;

...
        public DocEditPage(PageParameters params)
        {
                ...
                add(renderFileContent("mypdf"));
        }
...

        private MyPdfPanel renderFileContent(String id)
        {
                return new MyPdfPanel(id, getRenderFileContentModel(), 
getContentTypeModel(), getFileNameModel);
        }
...
        private IModel getRenderFileContentModel()
        {

                return new AbstractReadOnlyModel()
                {
                        @Override
                        public Object getObject()
                        {
                                return file;
                        }
                };
        }

        private IModel getContentTypeModel()
        {
                return new AbstractReadOnlyModel()
                {
                        @Override
                        public Object getObject()
                        {
                                return contentType;
                        }
                };
        }

        private IModel getFileNameModel()
        {
                return new AbstractReadOnlyModel()
                {
                        @Override
                        public Object getObject()
                        {
                                return fileName;
                        }
                };
        }

...

        private DISTree disTree(String id)
        {
                return new DISTree(id)
                {
                        @Override
                        public void selectNode(AjaxRequestTarget target, 
DISTreeNode node)
                        {
                                //set file and contentType;
                                ...
                                DocEditPage.this.contentType = 
content.getContentType();
                                DocEditPage.this.file = content.getOrbLk();
                        }
                }
        }

}

++++++++++++++++++++++++++++++ class MyPdfPanel 
+++++++++++++++++++++++++++++++++++++++++++++++++++++
public class MyPdfPanel extends Panel
{

        public MyPdfPanel(String id, IModel fileContentModel, IModel 
fileNameModel, IModel contentTypeModel)
        {
                //super(id, fileContentModel);
                super(id);

                file = (byte[]) fileContentModel.getObject();
                String fileName =  (String) fileNameModel.getObject();
                String contentType = (String) contentTypeModel.getObject();
                setRenderBodyOnly(true);
                add(new DocumentInlineFrame("mypdf", new MyPdfResource(file, 
contentType, fileName)));
        }

}

++++++++++++++++++++++++++++++ class MyPdfResource 
+++++++++++++++++++++++++++++++++++++++++++++++++++++
public class MyPdfResource extends DynamicWebResource
{
        private static final long serialVersionUID = 1L;
...
        private byte[] file;
        private String contentType = "application/pdf";
        private String fileName = "test.pdf";
...
        public MyPdfResource(byte[] file, String contenttype, String filename)
        {
                if (file != null)
                        this.file = file;
                if (contenttype != null && !"".equalsIgnoreCase(contenttype))
                        contentType = contenttype;
                if (filename != null && !"".equalsIgnoreCase(filename))
                        fileName = filename;
        }
...
}


Reply via email to