Java tutorial
/******************************************************************************* * Copyright (c) 2011 Subgraph. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Subgraph - initial API and implementation ******************************************************************************/ package com.subgraph.vega.ui.httpviewer.entity; import org.apache.http.HttpEntity; import org.apache.http.entity.ByteArrayEntity; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; import com.subgraph.vega.ui.hexeditor.HexEditControl; public class HttpEntityBinaryViewer extends Composite { private final HexEditControl hexedit; private String inputContentType; private String inputContentEncoding; public HttpEntityBinaryViewer(Composite parent) { super(parent, SWT.NONE); setLayout(new FillLayout()); hexedit = new HexEditControl(this); } void setInput(byte[] data, String contentType, String contentEncoding) { inputContentType = contentType; inputContentEncoding = contentEncoding; hexedit.setInput(data); } void clear() { inputContentType = null; inputContentEncoding = null; hexedit.setInput(new byte[0]); } boolean isContentDirty() { return hexedit.isContentDirty(); } HttpEntity getEntityContent() { final byte[] content = hexedit.getContent(); if (content == null) { return null; } else { return createEntity(content, inputContentType, inputContentEncoding); } } private HttpEntity createEntity(byte[] content, String contentType, String contentEncoding) { final ByteArrayEntity entity = new ByteArrayEntity(content); if (contentType != null && !contentType.isEmpty()) { entity.setContentType(contentType); } if (contentEncoding != null && !contentEncoding.isEmpty()) { entity.setContentEncoding(contentEncoding); } return entity; } }